我的问题看起来有点愚蠢,但每次我使用swing,我都会遇到问题。所以我正在研究一个学校项目,我需要将一些JTable添加到一个带有GridBagLayout的JPanel,但我看不到JTable im添加到我的面板。
以下是代码:
public class MainView extends JFrame {
private static Dimension dimensionFenetre = new Dimension(1980, 1000);
Object[][] team = {
{"France", "80"},
{"Germany", "80"},
{"Italy", "80"},
{"England", "80"}
};
String titleColumn[] = {"Team", "Overall"};
public MainView() {
JPanel panelFenetre = new JPanel(new GridBagLayout());
add(panelFenetre);
setVisible(true);
panelFenetre.setVisible(true);
setSize(dimensionFenetre);
panelFenetre.add(getTable1(), getTable1Constraints());
}
private JTable getTable1() {
JTable table = new JTable(team, titleColumn);
table.setVisible(true);
return table;
}
private GridBagConstraints getTable1Constraints() {
GridBagConstraints gbcTable1 = new GridBagConstraints(
0, 1,
1, 1,
1, 1,
GridBagConstraints.CENTER,
GridBagConstraints.NONE,
new Insets(0, 0, 0, 0),
0, 0);
return gbcTable1;
}
}
一个简单的主要:
public class Main {
public static void main(String[] args) {
MainView mainView = new MainView();
}
}
如果有人,有一些线索,那将会非常棒。
先谢谢。
答案 0 :(得分:2)
setSize()
,而是pack()
。setVisible(true)
,直到 添加所有组件为止。对我来说很好:
public MainView() {
JPanel panelFenetre = new JPanel(new GridBagLayout());
add(panelFenetre);
// setVisible(true);
// panelFenetre.setVisible(true);
// setSize(dimensionFenetre);
panelFenetre.add(new JScrollPane(getTable1()), getTable1Constraints());
pack();
setLocationRelativeTo(null);
setVisible(true);
}