这是一个帮助您的小例子:
import java.awt.*;import java.awt.event.*;import javax.swing.*;public class CardLayoutExample{ private JPanel contentPane; private MyPanel panel1; private MyPanel2 panel2; private void displayGUI() { Jframe frame = new Jframe("Card Layout Example"); frame.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE); JPanel contentPane = new JPanel(); contentPane.setBorder( BorderFactory.createEmptyBorder(5, 5, 5, 5)); contentPane.setLayout(new CardLayout()); panel1 = new MyPanel(contentPane); panel2 = new MyPanel2(contentPane); contentPane.add(panel1, "Panel 1"); contentPane.add(panel2, "Panel 2"); frame.setContentPane(contentPane); frame.pack();frame.setLocationByPlatform(true); frame.setVisible(true); } public static void main(String... args) { SwingUtilities.invokeLater(new Runnable() { public void run() { new CardLayoutExample().displayGUI(); } }); }}class MyPanel extends JPanel { private JButton jcomp4; private JPanel contentPane; public MyPanel(JPanel panel) { contentPane = panel; setOpaque(true); setBackground(Color.RED.darker().darker()); //construct components jcomp4 = new JButton ("openNewWindow"); jcomp4.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { CardLayout cardLayout = (CardLayout) contentPane.getLayout(); cardLayout.next(contentPane); } }); add(jcomp4); } @Override public Dimension getPreferredSize() { return (new Dimension(500, 500)); }}class MyPanel2 extends JPanel { private JButton jcomp1; private JPanel contentPane; public MyPanel2(JPanel panel) {contentPane = panel; setOpaque(true); setBackground(Color.GREEN.darker().darker()); //construct components jcomp1 = new JButton ("Back"); jcomp1.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { CardLayout cardLayout = (CardLayout) contentPane.getLayout(); cardLayout.next(contentPane); } }); add(jcomp1); } @Override public Dimension getPreferredSize() { return (new Dimension(500, 500)); }}
最新编辑
显示
JPanel您的选择,内部
CardLayout
import java.awt.*;import java.awt.event.*;import javax.swing.*;public class CardLayoutExample{ private JPanel contentPane; private MyPanel panel1; private MyPanel2 panel2; private MyPanel2 panel3; private JComboBox choiceBox; private String[] choices = { "Panel 1", "Panel 2", "Panel 3" }; private void displayGUI() { Jframe frame = new Jframe("Card Layout Example"); frame.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE); JPanel contentPane = new JPanel(); contentPane.setBorder( BorderFactory.createEmptyBorder(5, 5, 5, 5)); contentPane.setLayout(new CardLayout()); choiceBox = new JComboBox(choices); panel1 = new MyPanel(contentPane, this); panel2 = new MyPanel2(contentPane , Color.GREEN.darker().darker(), this); panel3 = new MyPanel2(contentPane , Color.DARK_GRAY, this); contentPane.add(panel1, "Panel 1"); contentPane.add(panel2, "Panel 2"); contentPane.add(panel3, "Panel 3"); frame.getContentPane().add(choiceBox, BorderLayout.PAGE_START); frame.getContentPane().add(contentPane, BorderLayout.CENTER); frame.pack();frame.setLocationByPlatform(true); frame.setVisible(true); } public JComboBox getChoiceBox() { return choiceBox; } public static void main(String... args) { SwingUtilities.invokeLater(new Runnable() { public void run() { new CardLayoutExample().displayGUI(); } }); }}class MyPanel extends JPanel { private JButton jcomp4; private JPanel contentPane; private JComboBox choiceBox; public MyPanel(JPanel panel, CardLayoutExample cle) { choiceBox = cle.getChoiceBox(); contentPane = panel; setOpaque(true); setBackground(Color.RED.darker().darker()); //construct components jcomp4 = new JButton ("Show New Panel"); jcomp4.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { String changeToPanel = (String) choiceBox.getSelectedItem(); CardLayout cardLayout = (CardLayout) contentPane.getLayout(); cardLayout.show(contentPane, changeToPanel); } }); add(jcomp4); } @Override public Dimension getPreferredSize() { return (new Dimension(500, 500)); }}class MyPanel2 extends JPanel { private JButton jcomp1; private JPanel contentPane; private Color backgroundColour; private JComboBox choiceBox; public MyPanel2(JPanel panel, Color c, CardLayoutExample cle) {contentPane = panel; backgroundColour = c; choiceBox = cle.getChoiceBox(); setOpaque(true); setBackground(backgroundColour); //construct components jcomp1 = new JButton ("Show New Panel"); jcomp1.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { String changeToPanel = (String) choiceBox.getSelectedItem(); CardLayout cardLayout = (CardLayout) contentPane.getLayout(); cardLayout.show(contentPane, changeToPanel); } }); add(jcomp1); } @Override public Dimension getPreferredSize() { return (new Dimension(500, 500)); }}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)