簡體   English   中英

將JScrollPane添加到JTable

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM