我添加了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);
....