У меня есть страница (Swing GUI), где я отображаю данные в соответствии с некоторыми условиями.Когда страница загружается, страница извлекает данные из БД и отображает данные в графическом интерфейсе.Теперь, если есть какие-либо изменения в базе данных, я хочу, чтобы это изменение было немедленно отражено в моем графическом интерфейсе без запуска / перезагрузки / обновления.Любая идея, как реализовать эту функциональность.Я использую JDBC Connection ... Просьба предложить ... Примечание: я не хочу запускать код Java или обновлять страницу, данные должны обновляться автоматически.Заранее спасибо,
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Timer;``
import java.util.TimerTask;
import javax.swing.*;
import DemoDBConn.MysqlConnection;
@SuppressWarnings("serial")
class GUI extends JFrame
{
Connection connection=null;
public GUI()
{
JFrame jf = new JFrame();
JLayeredPane LPane = new JLayeredPane();
jf.getContentPane() .add(LPane);
ImageIcon i = new ImageIcon(GUI.class.getResource("/images/background4.gif"));
JLabel background = new JLabel();
background.setIcon(i);
background.setBounds(0, 0, 1024, 768);
JLabel flight = new JLabel();
flight.setIcon(new ImageIcon(GUI.class.getResource("/images/acs_md_dis.png")));
flight.setBounds(270, 0, 800, 768);
JLabel seat1 = new JLabel();
seat1.setIcon(new ImageIcon(GUI.class.getResource("/images/acSymAmberInd.png")));
seat1.setBounds(320, 230, 10, 20);
JLabel seat2 = new JLabel();
seat2.setIcon(new ImageIcon(GUI.class.getResource("/images/acSymAmberInd.png")));
seat2.setBounds(370, 230, 10, 20);
JLabel seat3 = new JLabel();
seat3.setIcon(new ImageIcon(GUI.class.getResource("/images/acSymAmberInd.png")));
seat3.setBounds(320, 280, 10, 20);
JLabel seat4 = new JLabel();
seat4.setIcon(new ImageIcon(GUI.class.getResource("/images/acSymAmberInd.png")));
seat4.setBounds(370, 280, 10, 20);
LPane.add(background, new Integer(1));
LPane.add(flight, new Integer(2));
LPane.add(seat1, new Integer(3));
LPane.add(seat2, new Integer(3));
LPane.add(seat3, new Integer(3));
LPane.add(seat4, new Integer(3));
try {
String query ="Select * from passengersdetails";
connection = MysqlConnection.dbConnector();
PreparedStatement pst= connection.prepareStatement(query);
ResultSet rs= pst.executeQuery();
while(rs.next()){
if(rs.getString("seateNumber").equals("A1")){
if(rs.getString("status").equals("OK")){
seat1.setIcon(new ImageIcon(
GUI.class.getResource("/images/acSymGreenInd.png")));
}
else if(rs.getString("status").equals("NOT OK")){
}
else{
}
}
else if(rs.getString("seateNumber").equals("A2")){
if(rs.getString("status").equals("OK")){
seat2.setIcon(new ImageIcon(
GUI.class.getResource("/images/acSymGreenInd.png")));
}
else if(rs.getString("status").equals("NOT OK")){
}
else{
}
}
else if(rs.getString("seateNumber").equals("A3")){
if(rs.getString("status").equals("OK")){
seat3.setIcon(new ImageIcon(
GUI.class.getResource("/images/acSymGreenInd.png")));
}
else if(rs.getString("status").equals("NOT OK")){
}
else{
}
}
else if(rs.getString("seateNumber").equals("A4")){
if(rs.getString("status").equals("OK")){
seat4.setIcon(new ImageIcon(
GUI.class.getResource("/images/acSymGreenInd.png")));
}
else if(rs.getString("status").equals("NOT OK")){
}
else{
}
}
}
}
catch (Exception e) {
e.printStackTrace();
}
jf.setDefaultCloseOperation(jf.EXIT_ON_CLOSE);
jf.setSize(1024,768);
jf.setResizable(false);
jf.setVisible(true);
}
public static void main(String args[])
{
GUI gui = new GUI();
}
}