public class testio
{
public static void main(String[] args)
{
frame = new JFrame();
frame.setSize(500 , 1500);
panel = new JPanel();
deftabmod = new DefaultTableModel();
deftabmod.addColumn("Column1");
deftabmod.addColumn("Column2");
deftabmod.addColumn("Column3");
table = new JTable(deftabmod);
scrollpane = new JScrollPane(table);
panel.add(scrollpane);
deftabmod1 = new DefaultTableModel();
deftabmod1.addColumn("Column1");
deftabmod1.addColumn("Column2");
deftabmod1.addColumn("Column3");
table1 = new JTable(deftabmod1);
scrollpane1 = new JScrollPane(table1);
panel.add(scrollpane1);
textfield = new JTextField(20);
panel.add(textfield);
button_add_row = new JButton("Add Row");
button_add_row.setPreferredSize( new Dimension( 200 , 25 ) );
panel.add(button_add_row);
button_add_row.addActionListener( new button_add_row_actionListener() );
button_save = new JButton("Save");
button_save.setPreferredSize( new Dimension( 200 , 25 ) );
panel.add(button_save);
button_save.addActionListener( new button_save_actionListener() );
button_append = new JButton("Append");
button_append.setPreferredSize( new Dimension( 200 , 25 ) );
panel.add(button_append);
button_append.addActionListener( new button_append_actionlistener() );
frame.add(panel);
frame.setVisible(true);
}
}
上面是带有主要方法的简单Java代码。此类包含一个JTextField 这需要用户输入。接下来是一个JButton“添加行”,它从文本字段中获取String并将其添加到JTable中。下一个Jbutton“保存”将JTable的所有数据保存到文件中,下一个JTable显示已保存的数据。
public class button_add_row_actionListener implements ActionListener
{
Vector<String> addrow;
@Override
public void actionPerformed(ActionEvent e)
{
addrow = new Vector<String>();
addrow.addElement(testio.textfield.getText().toString() + " 1");
addrow.addElement(testio.textfield.getText().toString() + " 2");
addrow.addElement(testio.textfield.getText().toString() + " 3");
testio.deftabmod.addRow(addrow);
testio.textfield.setText(null);
}
}
}
此(上)addrow类成功将行添加到JTable。
public class button_save_actionListener implements ActionListener
{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
try
{
file.createNewFile();
ObjectOutputStream objectoutputstream = new ObjectOutputStream(new FileOutputStream(file));
objectoutputstream.writeObject(testio.table.getModel());
objectoutputstream.close();
}
catch(Exception esalessave1)
{}
try
{
file.createNewFile();
ObjectInputStream ois = new ObjectInputStream( new FileInputStream( file ) );
object = ois.readObject();
testio.table1.setModel( ( DefaultTableModel ) object );
ois.close();
}
catch( Exception exception )
{}
}
}
这个(上)button_save_actionListener类成功保存了添加到文件中的所有行,第二个JTable显示了保存的文件。
public class button_append_actionlistener implements ActionListener
{
@Override
public void actionPerformed(ActionEvent e)
{
appendrow = new Vector<String>();
appendrow.addElement(testio.textfield.getText().toString() + " 1");
appendrow.addElement(testio.textfield.getText().toString() + " 2");
appendrow.addElement(testio.textfield.getText().toString() + " 3");
testio.deftabmod.addRow(appendrow);
testio.deftabmod1.addRow(appendrow);
testio.textfield.setText(null);
}
这个(以上)类button_append_actionlistener尝试将JTextField中的行添加到两个JTable中,但是仅成功地将行添加到了第一个JTable中。
现在,如何将行添加到两个表中?强文本