Adding JPanel from another class to JPanel in JFrame

后端 未结 4 1708
执念已碎
执念已碎 2020-12-31 16:52

I can\'t get my JFrame from main class to display JPanel from another class. Everything compiles without errors.

JFrameTest.java:

pa         


        
4条回答
  •  再見小時候
    2020-12-31 17:36

    With some more help (user "Hilek" from some other site) I menaged to get the JPanel from another class to be displeyed in main class. Here is the code:

    JFrameTest.java:

    import java.awt.Color;
    import java.awt.Dimension;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    
    public class JFrameTest extends JFrame {
    
            private JButton testButton;
            private JPanel panelMain;
            private JPanelOne panel;
    
            public JFrameTest() {
    
                    // setting up JFrame
                    setLayout(null);
                    setPreferredSize(new Dimension(420, 90));
                    setResizable(false);
                    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
                    // creating main JPanel (white)
                    panelMain = new JPanel();
                    panelMain.setBackground(Color.WHITE);
                    panelMain.setBounds(0, 0, 420, 90);
                    panelMain.setPreferredSize(new Dimension(200, 40));
                    add(panelMain);
    
                    // creating JButton in the main JPanel (white)
                    testButton = new JButton("Button from main class");
                    panelMain.add(testButton);
    
                    // creating new JPanelOne object from JPanelOne class containing black JPanel
                    panel = new JPanelOne();
    
                    // adding black JPanel to main JPanel (white)
                    panelMain.add(panel);
    
                    pack();
    
            }
    
            public static void main(String[] arguments) {
    
                    // creating JFrame object and setting it visible
                    JFrameTest frame = new JFrameTest();
                    frame.setVisible(true);
    
            }
    
    }
    

    JPanelOne.java:

    import java.awt.Color;
    import java.awt.Dimension;
    import javax.swing.JButton;
    import javax.swing.JPanel;
    import javax.swing.SwingConstants;
    
    public class JPanelOne extends JPanel
    {
    
            public JPanelOne()
            {
                    // setting up black JPanel
                    JPanel panel = new JPanel();
                    panel.setPreferredSize(new Dimension(220, 40));
                    panel.setBackground(Color.BLACK);
    
                    // creating button on external JPanel
                    JButton button = new JButton("Button (+JPanel) from external class");
    
                    // adding button to the black JPanel
                    panel.add(button);
    
                    // adding blackJPanel
                    add(panel);
            }
    }
    

    Print screen of working example:

    http://i.stack.imgur.com/qKeBp.jpg

    Maybe someone will find it helpful in their problem.

提交回复
热议问题