JAVA:GridBagLayout上的对齐方式

时间:2014-03-21 22:11:45

标签: java jtable jpanel gridbaglayout

我正在寻找覆盖Teamspeak3 ...

问题是,我无法按照自己的意愿调整JTable

截图:

http://you-belge.eu/files/2014-03-21_230603.jpg

我希望桌面(屏幕上有2个名字)位于左上角

这是我的代码:

public void setPanelContent(Object[][] clientList, Object[][] msgList)
{

    JPanel jp_ = new JPanel();

    jp_.setLayout(new GridBagLayout());

    GridBagConstraints g = new GridBagConstraints();

    g.gridx = 1;
    //g.fill = GridBagConstraints.HORIZONTAL;
    g.anchor = GridBagConstraints.FIRST_LINE_START;
    g.weightx = 1;

    String  title[] = {"A", "B"};
    JTable tableau = new JTable(clientList, title);


    tableau.setTableHeader(null);
    tableau.setRowHeight(20);
    tableau.setShowGrid(false);
    tableau.setEnabled(false);

    // tableau.setOpaque(false);
    ((DefaultTableCellRenderer)tableau.getDefaultRenderer(Object.class)).setOpaque(false);

    tableau.getColumn("A").setMaxWidth(30);
    tableau.getColumn("B").setMinWidth(210);
    // tableau.getColumn("B").setMaxWidth(520);
    tableau.getColumnModel().getColumn(0).setCellRenderer(new ImageRenderer());

    jp_.add(tableau, g);
    jp_.setBackground(Color.CYAN); // for test

    jp_.setPreferredSize(new Dimension(jp.getWidth(), jp.getHeight()));

    jp.removeAll();
    jp.invalidate();

    jp.add(jp_);
    jp.updateUI();
    this.repaint();
}

2 个答案:

答案 0 :(得分:0)

  • 如果您希望表格内容位于左上角(而非您的表格本身,因为它需要所有GridBagLayout垂直空间),您可以扩展此{{ 1}}高度添加:

    JTable
  • 如果您希望表格本身位于左上角,可以使用此功能:

    g.fill = GridBagConstraints.VERTICAL;
    g.weighty = 1;
    

答案 1 :(得分:0)

尝试在窗口顶部创建一个JPanel(BorderLayout.NORTH),在刚刚使用BorderLayout WEST创建的JPanel中创建一个新的JPanel,然后添加你的JTable,这个最后一个JPanel。