2015-07-10 48 views
0

使用GridbagLayout,我试图显示一个JTable。这是我的代码(简体)。点击按钮后会显示我要放入的jpanel代码。试图显示JTable

我的小组:

optionspane = new JPanel(); 
     optionspane.setLayout(new GridBagLayout()); 
     optionspane.setBounds(0, 0, myframe.getWidth(), myframe.getHeight()); 

我的小组的孩子:

GridBagConstraints dgbc=new GridBagConstraints(); 

    dgbc.gridx=0; 
    dgbc.gridy=0; 
    dgbc.weightx = 1.0; 
    dgbc.weighty = 1.0; 
    dgbc.anchor=GridBagConstraints.CENTER; 
    dgbc.fill=GridBagConstraints.BOTH; 
    dgbc.insets=new Insets(5,10,10,5); 
    datapane.add(ServiceInterface.eighthpanel(), dgbc); 

    dgbc.gridx=0; 
    dgbc.gridy=1; 
    gbc.anchor=GridBagConstraints.SOUTH; 
    dgbc.fill=GridBagConstraints.BOTH; 
    dgbc.insets=new Insets(5,0,5,5); 
    datapane.add(ServiceInterface.ninethpanel(), dgbc); 

这里是包含的JPanel面板方法:

public static JPanel eighthpanel() throws IOException{ 
    pane.setLayout(new GridBagLayout()); 
    GridBagConstraints gbc=new GridBagConstraints(); 
    pane.setBorder(BorderFactory.createLineBorder(Color.BLACK)); 

    JLabel datawelcome=new JLabel("Please Enter the QoS values'"); 
    datawelcome.setFont(new Font("Ubuntu", Font.BOLD, 16)); 


    gbc.gridx = 0; 
    gbc.gridy = 1; 
    gbc.fill=GridBagConstraints.BOTH; 
    gbc.fill=GridBagConstraints.REMAINDER; 
    gbc.insets=new Insets(10,20,10,20); 
    pane.add(datawelcome, gbc); 

    gbc.gridx = 0; 
    gbc.gridy = 2; 
    gbc.weightx=1; 
    gbc.weightx=1; 
    gbc.fill=GridBagConstraints.BOTH; 
    gbc.fill=GridBagConstraints.REMAINDER; 
    gbc.insets=new Insets(10,20,10,20); 
    //pane.add(new JScrollPane(displayJTable), gbc); 
    pane.add(myscrol, gbc); 

    return pane; 
} 

这是我如何填补我的JTable(在按钮监听器中):

   mytableclass=new Mytable(); 
       displayJTable = new JTable(myModel); 

    displayJTable.getColumnModel().getColumn(0).setPreferredWidth(60); 
    displayJTable.setPreferredScrollableViewportSize(new Dimension(525,250)); 
       displayJTable.setFillsViewportHeight(true); 
       displayJTable.setLocation(5,5); 
       myscrol.add(displayJTable); 
       myscrol.getViewport().setViewPosition(new Point(0,0)); 
       myscrol.setPreferredSize(new Dimension(600,400)); 
       principalpane.setVisible(false); 
       datapane.setVisible(true); 
      } 
     }});  

回答

0

我解决了我的问题。我添加了一个其他面板(默认布局),并在button.actionlistener中的此面板中添加了scrollPane。 我认为是因为gridbaglayout的静态特性。

+1

*“我认为是因为gridbaglayout的静态特性。”*在这里看起来像无稽之谈。 –