如何把一张桌子和3个按钮在一个JFrame
喜的朋友我想在一个框架布局4个实体如何把一张桌子和3个按钮在一个JFrame
- JTable中
- 3个按钮
为此,我创建了一个JFrame并在该JFrame中放置2个JPanel。一个JPanel包含一个包含JTable的scrollablePanel。另一个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
的add方法自动重定向到它的的contentPane
调用,因此,从技术上讲,你只需要做......
add(topPanel, BorderLayout.CENTER);
add(btnPanel, BorderLayout.SOUTH);
更新
我还应该指出,JFrame
的默认布局管理器是BorderLayout
。您可以通过简单地致电JFrame#setLayout
来更改此选项,但您所追求的结果最好符合BorderLayout
... FYI
在[BorderLayout](http://docs.oracle.com/javase/7/docs/api/java/awt/BorderLayout.html)中解释了“为什么您应该在add方法中提供方向常量?”的原因)java文档:*为方便起见,BorderLayout解释了缺少字符串规范,在add方法中,与常量CENTER * – 2013-03-04 05:22:56
@HarryJoy +1好评一样! – MadProgrammer 2013-03-04 05:25:59
感谢MadProgrammer !!!有效。我很开心 :) – 2013-03-04 06:54:57
另请参见[*初始线程*](http://docs.oracle.com/javase/教程/ uiswing /并发/ initial.html)。 – trashgod 2013-03-04 05:20:38