Делаю программу для взаимодействия с базой данных. Рисую достаточно примитивную форму
public void reviewTable() throws SQLException {
DatabaseConnector dbConnector = new DatabaseConnector(connectionURL, username, password);
try {
dbConnector.Init();
} catch (ClassNotFoundException e) {
System.out.println("Ошибка при подключении к базе");
}
OrderRunningTable orderRunningTable = new OrderRunningTable();
orderRunningTable.addDate(dbConnector, "listOrdered");
jTableRunningOrder = new JTable(orderRunningTable);
scrollbarRunnungOrder = new JScrollPane(jTableRunningOrder);
scrollbarRunnungOrder.setPreferredSize(new Dimension(1500, 400));
ActionListener actionListener = new AddListener();
btnNewOrder = new JButton("Добавление заказа");
btnNewOrder.setBounds(0,400,150,30);
btnNewOrder.addActionListener(actionListener);
btnEditOrder = new JButton("Изменение заказа");
btnEditOrder.setBounds(160, 400, 150, 30);
btnEditOrder.addActionListener(actionListener);
mainActivity.add(btnNewOrder);
mainActivity.add(btnEditOrder);
mainActivity.add(scrollbarRunnungOrder);
}
Написал обработчик для добавления заказов. Добавление заказа происходит в отдельном окне. После того, как данные о заказе добавлены в базу мне необходимо сделать так, чтобы данные на форме тоже обновились. Написал для этого также обработчик нажатия на кнопку
public class InsertListener implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
DatabaseConnector connector = new DatabaseConnector(connectionURL, username, password);
try {
connector.Init();
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
}
if (!phoneNumber.getText().equals("") &&
!FIO_Client.getText().equals("") &&
!dataOrderedExecution.equals("") &&
!startAdress.getText().equals("") &&
!endAdress.getText().equals("") &&
!idDriver.getSelectedItem().equals("")) {
connector.updateQuery("insert into mytaxi.listOrdered set phoneNumber = \'" + phoneNumber.getText() +
"\', FIO_Client = \'" + FIO_Client.getText() +
"\', dataOrderedExecution = \'" + dataOrderedExecution.getText() +
"\', startAdress = \'" + startAdress.getText() +
"\', endAdress = \'" + endAdress.getText() +
"\', tariff = \'" + String.valueOf(tariff.getSelectedItem()) +
"\', idDriver = " + Integer.parseInt(String.valueOf(idDriver.getSelectedItem())) +
", status = \'" + String.valueOf(status.getSelectedItem()) +
"\', typeAuto = \'" + String.valueOf(typeAuto.getSelectedItem()) +
"\', cmoke = " + cmoke.isSelected() +
", WiFi = " + WiFi.isSelected() +
", animals = " + animals.isSelected() +
", children = " + children.isSelected() +
", cost = 0" +
", paid = 0");
connector.updateQuery("update mytaxi.autopark set status = \'Доезд\' where id = " +
Integer.parseInt(String.valueOf(idDriver.getSelectedItem())));
connector.finalize();
try {
reviewTable();
} catch (SQLException e1) {
e1.printStackTrace();
}
newOrderActivity.dispose();
newOrderActivity.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
else {
JFrame error = new JFrame("Ошибка");
error.setSize(100, 100);
JTextArea errorsMessage = new JTextArea("Проверьте значения полей!");
errorsMessage.setBounds(0, 40, 100, 20);
errorsMessage.disable();
error.add(errorsMessage);
error.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
error.setVisible(true);
}
}
}
Данные в базе обновляются, а вот как обновить окно, в котором они отображаются? Попытался повторно вызвать метод reviewTable(), но безуспешно. Кроме того попробовал делать removeAll с mainActivity, также не помогает.
попробуйте сделать так:
создаем окошко
JFrame window = new JFrame();
когда надо его обновить - чистим (возможно не полностью, но я полностью чистил),
добавляем по новой все что нужно и .revalidate();
window.getContentPane().removeAll();
window.add(что-то там);
window.revalidate();
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть метод,который отправляет серверу команду, в ответ сервер отправляет список автомобилейМетод:
Стоит задача вывода картинок разного размера, как на прикрепленном примереНужен вывод в 3-4 колонки по горизонтали, хотелось бы реализовать...
На работе делаю сайт, который требует много оптимизации: большое количество графики, анимации и прочего
поле проверить форму на корректное заполнениеполе может содержать только русские слова пробела и дефисы