2013-03-04 76 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

相關問題