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 с методом main.Этот класс содержит JTextField, который принимает пользовательский ввод.Далее идет JButton 'add row', который берет String из текстового поля и добавляет его в JTable.Следующая кнопка «save» сохраняет все данные 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 воба JTables, но только успешно добавляет строку в первый JTable.
Теперь, пожалуйста, как мне добавить строку в обе таблицы? сильный текст