[英]Adding JScrollPane to JTable
我已經為此工作了一段時間,但似乎無法添加滾動窗格。 我正在創建一個JFrame,向該框架添加JTable,然后更新for循環中的單元格。 但是我無法在沒有崩潰的情況下添加JScrollPane。 我也無法在不崩潰的情況下聲明列標題。 任何想法將不勝感激。
frame6.setIconImage(Toolkit.getDefaultToolkit().getImage("images\\iconimage.jpg"));
frame6.pack();
frame6.setResizable(false);
frame6.setVisible(true);
frame6.setSize(400,200);
frame6.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
int w = frame6.getSize().width;
int h = frame6.getSize().height;
int x = (dim.width-w)/2;
int y = (dim.height-h)/2;
frame6.setLocation(x, y);
JPanel btnPnl = new JPanel(new BorderLayout());
JPanel topBtnPnl = new JPanel(new FlowLayout(FlowLayout.TRAILING));
JPanel bottombtnPnl = new JPanel(new FlowLayout(FlowLayout.CENTER));
JButton close = new JButton("Close");
bottombtnPnl.add(close);
btnPnl.add(topBtnPnl, BorderLayout.NORTH);
btnPnl.add(bottombtnPnl, BorderLayout.CENTER);
defaultTableModel model = new DefaultTableModel(list.size(), 6);
JTable table = new JTable(model);
frame6.add(table, BorderLayout.NORTH);
JScrollPane jps = new JScrollPane();
table.add(jps);
table.setValueAt("FIRST NAME", 0,0);
table.setValueAt("LAST NAME", 0, 1);
table.setValueAt("CLUB", 0, 2);
table.setValueAt("POSITION", 0, 3);
table.setValueAt("AGE", 0, 4);
table.setValueAt("COUNTRY", 0, 5);
int j = 0;
for(i = 0; i < PlayerManager.list.size(); i++){
if(list.get(i).getPosition().toUpperCase().equals(pPosition.toUpperCase()))
{
table.setValueAt(PlayerManager.list.get(i).getfName(), j+1, 0);
table.setValueAt(PlayerManager.list.get(i).getlName(), j+1, 1);
table.setValueAt(PlayerManager.list.get(i).getClub(), j+1, 2);
table.setValueAt(PlayerManager.list.get(i).getPosition(), j+1, 3);
table.setValueAt(PlayerManager.list.get(i).getAge(), j+1, 4);
table.setValueAt(PlayerManager.list.get(i).getNationality(), j+1, 5);
j++;
}
}
frame6.add(table, BorderLayout.CENTER);
frame6.add(btnPnl, BorderLayout.SOUTH);
frame6.setTitle("Player Table");
close.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
frame6.setVisible(false);
frame6.dispose();
}
});
您必須將表添加到scroolpane中,反之亦然
JScrollPane jps = new JScrollPane();
jps.add(table);
代替
JScrollPane jps = new JScrollPane();
table.add(jps);
而且還檢查了這個 。 希望能幫助到你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.