【发布时间】:2014-01-04 13:28:31
【问题描述】:
我有两个类(lay 和 panelTwo)。在“lay”中,我有我的 MainMethod,这是我放置 CardLayout 的地方。我想要做的是在另一个外部类中访问该类。但是我在尝试编写 ActionListener 时似乎无法访问它:
public class lay {
JFrame frame;
JPanel panelCont;
JPanel panelOne;
JButton buttonOne;
CardLayout cards;
PanelTwo panelTwo;
public lay() {
frame = new JFrame("Start");
panelCont = new JPanel();
panelOne = new JPanel();
panelTwo = new PanelTwo();
buttonOne = new JButton("Got to two");
cards = new CardLayout();
panelCont.setLayout(cards);
panelOne.add(buttonOne);
panelOne.setBackground(Color.BLUE);
panelCont.add(panelOne, "1");
panelCont.add(panelTwo, "2");
cards.show(panelCont, "1");
buttonOne.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
cards.show(panelCont, "2");
}
});
frame.add(panelCont);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new lay();
}
});
}
}
这是我的另一个问题所在的班级:
public class PanelTwo extends JPanel {
JButton buttonTwo;
public PanelTwo() {
buttonTwo = new JButton("Go to one");
add(buttonTwo);
setBackground(Color.GREEN);
buttonTwo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
cards.show(panelCont, "1");
}
});
}
}
如您所知,我在“cards.show(panelCont, "1")”中遇到错误。我明白为什么会这样。我只是不知道解决方案是什么。
【问题讨论】:
标签: java swing jpanel cardlayout