我将JTable添加到使用GridLayout的JPanel中,但是我没有像添加JButton时那样得到相同的行为...
我想知道如何使用JTable获得相同的自动调整大小行为,就像将JButton添加到使用GridLayout的JPanel中一样,并且我希望该表使用面板的整个空间。
对不起拼写,英语不是我的母语。希望你们能帮助我!
这是我的代码:
import javax.swing.*;
import java.awt.*;
class Frame extends JFrame {
private JPanel center;
private JTable table;
public Frame(){
super("Test Jtable");
this.setLayout(new BorderLayout());
this.center = new JPanel();
this.center.setLayout(new GridLayout());
this.table = new JTable(50,50);
this.table.setGridColor(Color.black);
this.table.setCellSelectionEnabled(true);
this.center.add(this.table);
this.add(this.center,BorderLayout.CENTER);
}
}
public class TestFrame {
public static void main(String... args) {
Frame f =new Frame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(400,400);
f.setVisible(true);
}
}
答案 0 :(得分:1)
将表格添加到滚动窗格,如example。
所示this.center.add(new JScrollPane(this.table));
附录:我使用pack()
提倡这样的事情;其他安排是可能的,但不太可用。 setPreferredScrollableViewportSize()
方法也可能有所帮助。
import javax.swing.*;
import java.awt.*;
class Frame extends JFrame {
private JPanel center;
private JTable table;
public Frame() {
super("Test Jtable");
this.setLayout(new BorderLayout());
this.center = new JPanel();
this.center.setLayout(new GridLayout());
this.table = new JTable(50, 10);
this.table.setGridColor(Color.black);
this.table.setCellSelectionEnabled(true);
this.center.add(this.table);
this.add(new JScrollPane(this.center), BorderLayout.CENTER);
}
}
public class TestFrame {
public static void main(String... args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
Frame f = new Frame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.pack();
f.setVisible(true);
}
});
}