Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在JFrame中放置一张桌子和3个按钮_Java_Swing_Jpanel_Layout Manager - Fatal编程技术网

Java 如何在JFrame中放置一张桌子和3个按钮

Java 如何在JFrame中放置一张桌子和3个按钮,java,swing,jpanel,layout-manager,Java,Swing,Jpanel,Layout Manager,嗨,朋友们,我想在一个框架中布局4个实体 JTable 3个按钮 为此,我创建了一个JFrame,并在该JFrame中放置了2个JPanel。一个JPanel包含一个scrollablePanel,其中包含一个JTable。另一个JPanel包含3个JButton 我希望输出如下所示: 但是我的桌子不再可见,只有按钮可见。 下面是我的代码 import java.awt.*; import java.awt.event.*; import javax.swing.*; public clas

嗨,朋友们,我想在一个框架中布局4个实体

  • JTable
  • 3个按钮
  • 为此,我创建了一个JFrame,并在该JFrame中放置了2个JPanel。一个JPanel包含一个scrollablePanel,其中包含一个JTable。另一个JPanel包含3个JButton

    我希望输出如下所示:

    但是我的桌子不再可见,只有按钮可见。 下面是我的代码

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    
    public class displayGui extends JFrame{
        private JPanel topPanel;
        private JPanel btnPanel;
        private JScrollPane scrollPane;
    
        public displayGui(JTable tbl){
            setTitle("Company Record Application");
            setSize(300,200);
            setBackground(Color.gray);
    
    
            topPanel = new JPanel();
            btnPanel = new JPanel();
    
            topPanel.setLayout(new BorderLayout());
            getContentPane().add(topPanel);
            getContentPane().add(btnPanel);
            scrollPane = new JScrollPane(tbl);
            topPanel.add(scrollPane,BorderLayout.CENTER);
            JButton addButton = new JButton("ADD");
            JButton delButton = new JButton("DELETE");
            JButton saveButton = new JButton("SAVE");
    
            btnPanel.add(addButton);
            btnPanel.add(delButton);
    
        }
    }
    
    我的主要方法中的代码:

    displayGui dg = new displayGui(table);
    dg.setVisible(true);
    

    您需要为框架上的每个面板指定一个位置

    而不是

    getContentPane().add(topPanel);
    getContentPane().add(btnPanel);
    
    试试看

    getContentPane().add(topPanel, BorderLayout.CENTER);
    getContentPane().add(btnPanel, BorderLayout.SOUTH);
    
    旁注

    JFrame
    s add方法自动将对它的调用重定向到
    contentPane
    ,因此,从技术上讲,您只需要执行以下操作

    add(topPanel, BorderLayout.CENTER);
    add(btnPanel, BorderLayout.SOUTH);
    
    已更新


    我还应该指出,
    JFrame
    的默认布局管理器是
    BorderLayout
    。您只需调用
    JFrame#setLayout
    ,即可更改此设置,但您所追求的结果最好符合
    BorderLayout
    …FYI

    您需要为框架上的每个面板指定一个位置

    而不是

    getContentPane().add(topPanel);
    getContentPane().add(btnPanel);
    
    试试看

    getContentPane().add(topPanel, BorderLayout.CENTER);
    getContentPane().add(btnPanel, BorderLayout.SOUTH);
    
    旁注

    JFrame
    s add方法自动将对它的调用重定向到
    contentPane
    ,因此,从技术上讲,您只需要执行以下操作

    add(topPanel, BorderLayout.CENTER);
    add(btnPanel, BorderLayout.SOUTH);
    
    已更新


    我还应该指出,
    JFrame
    的默认布局管理器是
    BorderLayout
    。您只需调用
    JFrame#setLayout
    ,就可以改变这一点,但您所追求的结果最好是满足
    BorderLayout
    …FYI

    另请参见。另请参见。java文档中解释了“为什么应该在add方法中提供方向常量?”的原因:为了方便,BorderLayout解释add方法中没有字符串规范,与常量相同CENTER@HarryJoy+1好评论!java文档中解释了“为什么应该在add方法中提供方向常量?”的原因:为了方便起见,BorderLayout解释了add方法中没有字符串规范的原因,与常量相同CENTER@HarryJoy+1好评论!