这是我在框架上打印jtable的代码



我添加了MouseListener来从表中选择一个特定的行,行的内容正在控制台上打印,但我想在新的框架上打印这些内容,我该怎么办。我附上了我的代码和表格的屏幕截图。谢谢你的帮助。

这是我的密码。

    final JTable table = new JTable(data, columnNames);
    JScrollPane scrollPane = new JScrollPane( table );
    cp.add(scrollPane,BorderLayout.CENTER);
    frame.add(cp);
    frame.setSize(300,300);
    frame.setDefaultCloseOperation( EXIT_ON_CLOSE );
    frame.pack();
    frame.setVisible(true);
    table.addMouseListener(new MouseAdapter() {
    public void mouseClicked(MouseEvent e){
         if(e.getClickCount()==1){
            JTable target = (JTable)e.getSource();
        System.out.println(target);
            int row = target.getSelectedRow();
        System.out.println(row);
        Object [] rowData = new Object[table.getColumnCount()];
        Object [] colData = new Object[table.getRowCount()];
        for(int j = 0;j < table.getRowCount();j++)
            for(int i = 0;i < table.getColumnCount();i++)
            {
               rowData[i] = table.getValueAt(j, i);
               System.out.println(rowData[i]);
             }
          }
       }
    });
}

首先,如果您使用swing制作图形界面,则不能使用System.out.print。您需要设置标签中的每一行并以这种方式打印出来。如果它是一个标签,那么您可以用鼠标选择它

在Mouse Listener方法中,调用新的JFrame,在该JFrame中,将所选行的Contents放在Constructor Parameters中。

JFrame newframe=新JFrame("选定内容");

输出结果(System.out.println(rowData[i]);)时,只需创建一个新的JFrame,并将要输出的文本放置在此处:

...
JFrame secondFrame = new JFrame();
JPanel myPanel = new JPanel();
for(int j = 0;j < table.getRowCount();j++){
    for(int i = 0;i < table.getColumnCount();i++){
           rowData[i] = table.getValueAt(j, i);
           JLabel label = new JLabel(rowData[i]);
           myPanel.add(label);
    }
}
secondFrame.add(myPanel);
secondFrame.setVisible(true);
....

最新更新