我使用NetBeans GUI构建器创建了一个GUI,它看起来很棒!但是,我不知道如何实现代码来改变GUI内部的值。
我的程序连接到数据库,并为每个患者提取性别,房间号,床号,姓名和推荐来源等信息。 GUI的目的是经常表示对该信息的任何更改,因此我希望它每60秒左右自动与数据库同步。我可以编写数据库同步的代码,我已经创建了GUI。
我的问题是如何更新在NetBeans中创建的GUI中显示的信息?
public class ConnectMSSQLServer {
static int bedCount;
public static int getBedCount(){
return bedCount;
}
public void setBedCount(int number){
bedCount = number;
}
public void dbConnect(String db_connect_string, String db_userid, String db_password) {
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn = DriverManager.getConnection(db_connect_string, db_userid, db_password);
System.out.println("connected");
Statement statement = conn.createStatement();
String queryString = "select f2 from beds.dbo.Sheet1$";
String queryString1 = "select f3 from beds.dbo.Sheet1$";
String queryString2 = "select f4 from beds.dbo.Sheet1$";
String queryString3 = "select f5 from beds.dbo.Sheet1$";
String queryString4 = "select f6 from beds.dbo.Sheet1$";
String queryString5 = "select f7 from beds.dbo.Sheet1$";
String queryString6 = "select f8 from beds.dbo.Sheet1$";
String queryString7 = "select f9 from beds.dbo.Sheet1$";
String queryString8 = "select f10 from beds.dbo.Sheet1$";
String queryString9 = "select f11 from beds.dbo.Sheet1$";
String queryString10 = "select f12 from beds.dbo.Sheet1$";
List<String> locationList = new ArrayList<String>();
List<String> patientList = new ArrayList<String>();
List<String> refferallList = new ArrayList<String>();
List<String> DateList = new ArrayList<String>();
// List<String> locationList = new ArrayList<String>();
// List<String> locationList = new ArrayList<String>();
// List<String> locationList = new ArrayList<String>();
ResultSet rs = statement.executeQuery(queryString);
while (rs.next()) {
locationList.add(rs.getString(1));
locationList.removeAll(Collections.singleton(null));
}
ResultSet rs1 = statement.executeQuery(queryString1);
while (rs1.next()) {
patientList.add(rs1.getString(1));
patientList.removeAll(Collections.singleton(null));
}
Set<String> uniqueLocationList = new HashSet<String>(locationList);
System.out.println(uniqueLocationList);
setBedCount(uniqueLocationList.size());
Set<String> uniquePatientList = new HashSet<String>(patientList);
System.out.println(uniquePatientList);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
ConnectMSSQLServer connServer = new ConnectMSSQLServer();
connServer.dbConnect("jdbc:sqlserver://******", "***", "********");
}
}
所以基本上我想在提供的示例中编写代码,将数据附加到GUI中。喜欢bed1A.setIcon(emptyIcon);类似的东西,但我不知道如何从存在于它之外的代码更改GUI的值。
答案 0 :(得分:3)
现在,在GUI构建器中,您不想重复自己(主要是DRY)。所有这些房间组件应该是List
个房间。使用GUI构建器添加一些元素后,您可以调整数组/列表的代码。
控制器可以在JFrame中设置内容:您添加到JFrame:addPatient(int room, int bed, String name)
并可以从列表中获取组件并使用Ctrl-Space
从setText("Jane")
选择任何内容。< / p>
制作数据类,例如Room
,Bed
,Patient
。
(使用版本控制。)