Java 如何在JFrame中放置一张桌子和3个按钮
嗨,朋友们,我想在一个框架中布局4个实体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
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好评论!