2013-03-04 66 views
1

喜的朋友我想在一个框架布局4个实体如何把一张桌子和3个按钮在一个JFrame

  1. JTable中
  2. 3个按钮

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

我预计输出为象下面这样:

enter image description here

但是我的表是不可见的了,只有按钮是可见的。 以下是我的代码

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); 
+1

另请参见[*初始线程*](http://docs.oracle.com/javase/教程/ uiswing /并发/ initial.html)。 – trashgod 2013-03-04 05:20:38

回答

4

您需要在框架上的每个面板指定位置......

而不是...

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

+2

在[BorderLayout](http://docs.oracle.com/javase/7/docs/api/java/awt/BorderLayout.html)中解释了“为什么您应该在add方法中提供方向常量?”的原因)java文档:*为方便起见,BorderLayout解释了缺少字符串规范,在add方法中,与常量CENTER * – 2013-03-04 05:22:56

+0

@HarryJoy +1好评一样! – MadProgrammer 2013-03-04 05:25:59

+0

感谢MadProgrammer !!!有效。我很开心 :) – 2013-03-04 06:54:57

相关问题