Ik ben bezig met een login-scherm. In dit login-scherm wil ik een panel aanroepen vanuit een andere klasse(GUI_Werknemer.class). Het probleem is dat het panel niet getoond wordt vanuit CardLayoutDemo.class. Het aanroepen gaat dus wel goed, maar er wordt niks van weergegeven.
Het enige dat ik dus wil weten is hoe je gebruik maakt van een panel uit een andere klasse. Hoe je een complete instantie van een klasse op een panel zet.
Ik heb al gezocht op tweakers, google, java.sun.com en javaalmanac.com.
Mijn code:
CardLayoutDemo
GUI_Werknemer
Het enige dat ik dus wil weten is hoe je gebruik maakt van een panel uit een andere klasse. Hoe je een complete instantie van een klasse op een panel zet.
Ik heb al gezocht op tweakers, google, java.sun.com en javaalmanac.com.
Mijn code:
CardLayoutDemo
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
| import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CardLayoutDemo implements ItemListener {
JPanel cards; //a panel that uses CardLayout
final static String BUTTONPANEL = "JPanel with JButtons";
final static String TEXTPANEL = "JPanel with JTextField";
public void addComponentToPane(Container pane) {
//Put the JComboBox in a JPanel to get a nicer look.
JPanel comboBoxPane = new JPanel(); //use FlowLayout
String comboBoxItems[] = { BUTTONPANEL, TEXTPANEL };
JComboBox cb = new JComboBox(comboBoxItems);
cb.setEditable(false);
cb.addItemListener(this);
comboBoxPane.add(cb);
//Create the "cards".
JPanel card1 = new JPanel();
card1.add(new JButton("Button 1"));
card1.add(new JButton("Button 2"));
card1.add(new JButton("Button 3"));
JPanel card2 = new JPanel();
card2.add(new GUI_Werknemer());
//Create the panel that contains the "cards".
cards = new JPanel(new CardLayout());
cards.add(card1, BUTTONPANEL);
cards.add(card2, TEXTPANEL);
pane.add(comboBoxPane, BorderLayout.PAGE_START);
pane.add(cards, BorderLayout.CENTER);
}
public void itemStateChanged(ItemEvent evt) {
CardLayout cl = (CardLayout)(cards.getLayout());
cl.show(cards, (String)evt.getItem());
}
/**
* Create the GUI and show it. For thread safety,
* this method should be invoked from the
* event-dispatching thread.
*/
private static void createAndShowGUI() {
//Make sure we have nice window decorations.
JFrame.setDefaultLookAndFeelDecorated(true);
//Create and set up the window.
JFrame frame = new JFrame("CardLayoutDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Create and set up the content pane.
CardLayoutDemo demo = new CardLayoutDemo();
demo.addComponentToPane(frame.getContentPane());
//Display the window.
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
//Schedule a job for the event-dispatching thread:
//creating and showing this application's GUI.
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
} |
GUI_Werknemer
code:
1
2
3
4
5
6
7
8
9
10
11
| import javax.swing.*;
public class GUI_Werknemer extends JFrame
{
public GUI_Werknemer()
{
JPanel pane = new JPanel();
JButton btn = new JButton("test");
pane.add(btn);
}
} |