[英]Update a table from a JInternalFrame with a data from a JDialog
I'm developing a Java desktop application and I have a JInternalFrame, and a JDialog that inserts data in a table in the JInternalFrame. 我正在开发Java桌面应用程序,并且有一个JInternalFrame和一个将JInternalFrame中的数据插入表中的JDialog。
How I update the table when I press the "Insertar" button without close and open the JInternalFrame? 当我按下“ Insertar”按钮而不关闭并打开JInternalFrame时,如何更新表?
This is the Print of the screen: 这是屏幕的打印:
I know that it is possible by adding an addWindowListener()
but I don't know how implement this. 我知道可以通过添加
addWindowListener()
但是我不知道如何实现。
This is some code from JInternalFrame and JDialog: 这是来自JInternalFrame和JDialog的一些代码:
public class JIFAbastos extends JInternalFrame{
public JIFAbastos() {
// this.addWindowListener();
// Some code for update the table when the JDialog is close or pressed "Insertar" button.
}
public class JDInsAbasto extends JDialog{
public JDInsAbasto() {
btnAdAb.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent ae){
//Set variables and insert in table
}
});
You can add a row to a JTable
using addRow()
method like this: 您可以使用
addRow()
方法向JTable
添加一行,如下所示:
((DefaultTableModel) table.getModel()).addRow(new String[] {"value1", "value2"});
Try below example and see it yourself. 尝试下面的示例,然后自己查看。
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.*;
public class TableAndDialog
{
public static void main(String[] args)
{
JTable table = new JTable(new DefaultTableModel(
new String[][] {{"R1C1", "R1C2"}, {"R2C1", "R2C2"}},
new String[] {"Column 1", "Column 2"}));
JFrame f = new JFrame("Frame");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.getContentPane().add(new JScrollPane(table), BorderLayout.CENTER);
JTextField field1 = new JTextField(20);
JTextField field2 = new JTextField(20);
JButton insertButton = new JButton("Insert");
insertButton.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
((DefaultTableModel) table.getModel()).addRow(
new String[] {field1.getText(), field2.getText()});
}
});
JButton button = new JButton("Insert data");
button.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
JDialog d = new JDialog(f, "Dialog");
d.getContentPane().setLayout(new GridLayout(0, 2));
d.getContentPane().add(new JLabel("Column 1 value"));
d.getContentPane().add(field1);
d.getContentPane().add(new JLabel("Column 2 value"));
d.getContentPane().add(field2);
d.getContentPane().add(insertButton);
d.setBounds(400, 600, 300, 200);
d.setVisible(true);
}
});
f.getContentPane().add(button, BorderLayout.SOUTH);
f.setBounds(300, 200, 400, 300);
f.setVisible(true);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.