所以我想要带有 2-3 个按钮的介绍视图。每个按钮点击都会导致特定视图。我想知道如何使用 Java Swing 来实现这一点?
问问题
3152 次
1 回答
4
听起来像是CardLayout的完美工作。
这也是我的一个小演示:
import java.awt.CardLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class CardLayoutTutorial {
JFrame frame = new JFrame("CardLayout demo");
JPanel panelCont = new JPanel();
JPanel panelFirst = new JPanel();
JPanel panelSecond = new JPanel();
JButton buttonOne = new JButton("Switch to second panel/workspace");
JButton buttonSecond = new JButton("Switch to first panel/workspace");
CardLayout cl = new CardLayout();
public CardLayoutTutorial() {
panelCont.setLayout(cl);
panelFirst.add(buttonOne);
panelSecond.add(buttonSecond);
panelFirst.setBackground(Color.BLUE);
panelSecond.setBackground(Color.GREEN);
panelCont.add(panelFirst, "1");
panelCont.add(panelSecond, "2");
cl.show(panelCont, "1");
buttonOne.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
cl.show(panelCont, "2");
}
});
buttonSecond.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
cl.show(panelCont, "1");
}
});
frame.add(panelCont);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new CardLayoutTutorial();
}
});
}
}
单击buttonOne
视图时将切换到panelSecond
,单击buttonSecond
视图时将切换到panelFirst
于 2013-07-13T18:48:01.087 回答