Следующего кода используются для установки строки и столбцы JTable:массивы данных в JTable
private void createUIComponents() {
ergebnisModel = (DefaultTableModel) setupColumnsAndRows();
ergebnisTabelle = new JTable(ergebnisModel);
ergebnisTabelle.setFont(new Font("Arial", Font.PLAIN, 15));
//ergebnisModel.setRowCount(0);
tabellenScroll = new JScrollPane(ergebnisTabelle);
vergleichPlotter = new Plotter(calculator, 450, 400, Plotter.GraphType.VERGLEICH);
stromPlotter = new Plotter(calculator, 180, 150, Plotter.GraphType.STROM);
spannungPlotter = new Plotter(calculator, 180, 150, Plotter.GraphType.SPANNUNG);
leistungPlotter = new Plotter(calculator, 180, 150, Plotter.GraphType.LEISTUNG);
}
private TableModel setupColumnsAndRows() {
DefaultTableModel ergebnisModel = new DefaultTableModel();
ergebnisModel.addColumn("Größen");
ergebnisModel.addColumn("R in Ohm");
ergebnisModel.addColumn("XL in Ohm");
ergebnisModel.addColumn("XC in Ohm");
ergebnisModel.addRow(new String[] {"Widerstand", String.valueOf(calculator.getWiderstand()),
String.valueOf(calculator.calculateXL()), String.valueOf(calculator.calculateXC())});
ergebnisModel.addRow(new String[]{"I1", String.valueOf(calculator.getSpannung()/calculator.getWiderstand()), null, null});
ergebnisModel.addRow(new String[]{"I2", null, String.valueOf(calculator.getSpannung()/calculator.calculateXL()), null});
ergebnisModel.addRow(new String[]{"I3", null, null, String.valueOf(calculator.getSpannung()/-calculator.calculateXC())});
ergebnisModel.addRow(new String[] {null, null, null, null});
ergebnisModel.addRow(new String[]{"P", String.valueOf(calculator.calculateP()), null, null});
ergebnisModel.addRow(new String[]{"Q", String.valueOf(calculator.calculateQ()), null, null});
ergebnisModel.addRow(new String[]{"S", String.valueOf(calculator.calculateS()), null, null});
ergebnisModel.addRow(new String[]{"R Ges", String.valueOf(calculator.calculateGesWiderstand()), null, null});
ergebnisModel.addRow(new String[]{"I Ges", String.valueOf(calculator.getGesamtstrom()), null, null});
return ergebnisModel;
}
} где нуль представляет собой пустое пространство. Калькулятор - это сюрприз, мой калькулятор, который выполняет все математические функции. Он работает с числами, которые ранее были переданы через графический интерфейс.
Эта таблица является частью диалогового окна вывода. Теперь проблема, с которой я столкнулся, заключается в том, что после открытия диалога второй раз в течение того же сеанса с различным входом с первого экрана данные не обновляются. Он по-прежнему показывает расчеты, выполненные со старым вводом.
Это не может быть проблемой прохождения calculator
объекта, так как другие компоненты (в Plotter
экземпляров), опирающиеся на этом объекте всегда до
Где проблема?
И есть ли еще один-обычный способ ввода данных в таблицу?
EDIT
Я использую IntelliJ в GUI Builder, который использует XML-файлы, чтобы отметить состояние по componentbeans. Таким образом, некоторые компоненты (см. Выше) создаются вручную, а другие - данные XML-файлов.
Спасибо за ваш ответ, где именно, мне надо поместить в код, чтобы обновить данные? – Wecherowski
Потому что я вижу, что вы имеете в виду, но где еще я могу разместить создание JTable? – Wecherowski
Вы создаете JTable, когда добавляете все остальные компоненты в фрейм. После этого вы просто обновляете таблицу, очищая таблицуModel и добавляя новые строки данных в модель. – camickr