【问题标题】:Adding JScrollPane to JTable将 JScrollPane 添加到 JTable
【发布时间】:2013-12-17 06:02:06
【问题描述】:

我已经为此工作了一段时间,但似乎无法添加滚动窗格。我正在创建一个 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();
}
 });

【问题讨论】:

    标签: java swing jtable jscrollpane


    【解决方案1】:

    您必须将表格添加到 scroolpane,反之亦然

        JScrollPane jps = new JScrollPane();
        jps.add(table);
    

    而不是

        JScrollPane jps = new JScrollPane();
        table.add(jps);
    

    还可以查看this。希望对您有所帮助。

    【讨论】:

    • 不幸的是,我仍然遇到同样的问题,JScrollPane 没有显示,不过感谢您的输入。
    • JScrollPane jps = new JScrollPane(table); // 忘了这个
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多