如何在Java中向下移动表格?

问题描述 投票:1回答:2

是否可以在Java中向下移动表格。我尝试了setBordersetLocation,但是没有用。我该怎么办?

JLabel label = new JLabel("Enter proper data: ");
label.setBounds(0, 0, 120, 50);
frame.add(label);
JButton btn = new JButton("Click");
btn.setBounds(100, 300, 80, 50);
frame.add(btn);
String data [][] = new String [6][4];
String column[]={"No.","Player 1","Player 2","Strategy"};         
JTable table = new JTable(data, column);
JScrollPane sp=new JScrollPane(table);
frame.add(sp);          
frame.setSize(300,400);
frame.setVisible(true); 

请看这张图片:

enter image description here

java swing jtable layout-manager
2个回答
0
投票

enter image description here

看起来很适合外部面板的BorderLayout(蓝色轮廓线)。红色大标签位于PAGE_START中,表格的(滚动窗格)位于CENTER中。

[将按钮放在边框布局的FlowLayout中的带有PAGE_END(居中)的面板中,带有红色轮廓的面板中。做完了

所有额外的高度(如果用户使GUI变大)将被赋予表格。


0
投票

我根据@AndrewThompson的建议更改了代码,结果很好。

    JFrame frame = new JFrame("Play");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JPanel outerPanel = new JPanel(new BorderLayout());
    JPanel topPanel = new JPanel(new BorderLayout());
    JLabel label = new JLabel("Enter proper data: ");
    JButton btn = new JButton("Click");
    String data [][] = new String [100][4];
    String column[]={"No.","Player 1","Player 2","Strategy"};
    JTable table = new JTable(data, column);
    JScrollPane sp=new JScrollPane(table);
    topPanel.add(label, BorderLayout.PAGE_START);
    topPanel.add(sp, BorderLayout.CENTER);
    topPanel.add(btn, BorderLayout.PAGE_END);
    outerPanel.add(topPanel);
    frame.add(outerPanel);
    frame.pack();
    frame.setLocationRelativeTo(null);  
    frame.setVisible(true);

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.