Ale*_*sky 11 java swing jtable
我正在使用JTable并将其添加到使用gridbaglayout的面板中,如下所示:
JTable qdbs = new JTable(rowData, columnNamesVector);
qdbs.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
panel.add(qdbs, c);
Run Code Online (Sandbox Code Playgroud)
我不希望表格在滚动窗格中,但我希望表格占据面板的整个宽度.我怎么做到这一点?
根据要求提供SSCCE:
import javax.swing.*;
import java.awt.*;
public class Main{
public static void main(String[] args) {
new TestFrame();
}
public static class TestFrame extends JFrame{
public TestFrame() {
this.setTitle("SSCCE");
JPanel panel = new JPanel();
panel.setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
c.gridx = 0;
c.gridy = 0;
c.insets = new Insets(10,10,10,10);
JTable testTable = new JTable(10,2);
panel.add(testTable, c);
this.add(panel);
this.pack();
this.setVisible(true);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我希望这个表总是占据面板的整个宽度(插图除外).目前,在调整帧大小时,表不会更改大小.
jzd*_*jzd 12
您需要添加约束来告诉布局如何处理更多空间.在您的SSCCE中添加以下项目:
c.fill = GridBagConstraints.BOTH;
c.weightx = 1;
c.weighty = 0;
Run Code Online (Sandbox Code Playgroud)
import java.awt.*;
import javax.swing.*;
public class Test
{
public static void main(String args[]) throws Exception
{
JPanel panel = new JPanel( new GridBagLayout() );
JTable table = new JTable(5, 5);
GridBagConstraints gbc = new GridBagConstraints();
gbc.weightx = 1.0;
gbc.fill = GridBagConstraints.HORIZONTAL;
panel.add(table, gbc);
JFrame frame = new JFrame();
frame.add(panel, BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
}
}
Run Code Online (Sandbox Code Playgroud)
如果您需要更多帮助,请发布证明问题的SSCCE.
| 归档时间: |
|
| 查看次数: |
10583 次 |
| 最近记录: |