2017-07-27 81 views
0

我有问题在Jframe中显示两个面板。请帮我解决下面的代码JFrame:无法在jframe中显示两个面板

public class quotingtable extends javax.swing.JFrame { 
    DefaultTableModel model; 
    JTable table; 
    JButton SetButton = new JButton("Set Symbol"); 
    JButton VNStock = new JButton("VNStockChart"); 
    JButton Global = new JButton("GlobalChart"); 
    JPanel quotingpanel = new JPanel(new BorderLayout()); 
    JPanel functionpanel = new JPanel(new BorderLayout()); 

public void run(){ 
    model = new DefaultTableModel(col,row); 
    quotingpanel.add(table); 
    functionpanel.add(BorderLayout.CENTER,SetButton); 
    functionpanel.add(BorderLayout.WEST,VNStock); 
    functionpanel.add(BorderLayout.EAST,Global); 
    table = new JTable(model); 

    JScrollPane pane = new JScrollPane(table); 
    quotingpanel.add(pane); 
    getContentPane().add(BorderLayout.CENTER,functionpanel); 
    getContentPane().add(BorderLayout.SOUTH,quotingpanel); 
    setSize(800,800); 
    setLayout(new FlowLayout()); 
    setLayout (new BorderLayout()); 
    setVisible(true); 
    setDefaultCloseOperation(EXIT_ON_CLOSE); 

任何帮助表示赞赏。

+1

删除'的setLayout(新的FlowLayout());'和'setLayout的(新的BorderLayout());'其中出现在的端部代码 – MadProgrammer

回答

2

删除:

setLayout(new FlowLayout()); 
setLayout (new BorderLayout()); 

使用BorderLayout这样就不会拿起预先存在的成分,所以会忽略它们并不会布置它们

并考虑pack();

更换 setSize(800,800);

您可能还想更换

getContentPane().add(BorderLayout.CENTER,functionpanel); 
getContentPane().add(BorderLayout.SOUTH,quotingpanel); 

getContentPane().add(functionpanel, BorderLayout.CENTER); 
getContentPane().add(quotingpanel, BorderLayout.SOUTH); 

它只是一个更一致和更优选的机制

+0

谢谢你的帮助 –