【发布时间】:2015-08-19 15:22:58
【问题描述】:
我使用 NetBeans GUI builder 制作了一个 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 的值。
【问题讨论】:
-
您的问题似乎有点宽泛。你能说得更具体些吗——你想具体改变什么?涉及哪些 GUI 组件?你能显示相关的代码吗?
-
显示相关代码,只有我们可以提供帮助。没有神通领主赐予我看图中的代码,帮你解惑。
-
我的意思是我的问题要广泛,因为我希望更改 GUI 中显示的几乎所有内容。我只是不知道如何实现 netbeans 生成的代码,它有 6000 多行,我不知道是否应该创建一个扩展此 GUI 类的新类,然后以某种方式更改参数或编辑代码中的图形用户界面类。例如,如果房间 1 的数据库值更改为空,那么我想从房间中删除 Christine 并将该床的颜色改回灰色。
-
"I kind of meant for my quesiton to be broad..."-- 如果你想要一个广泛的答案,那么就是使用 MVC,Model-View-Controller,将你的程序逻辑从视图中分离出来,并让模型监听器改变视图的状态。另一个广泛的建议是在使用代码生成实用程序之前一定要学习好 GUI 库,换句话说,在使用 NetBeans 生成代码之前,确保你知道如何手工编写 Swing,否则你会卡住.如果你想要更具体的记录,那么我认为你仍然想问一个更具体的问题。 -
@WeareBorg 我不确定我可以向您展示什么代码来帮助澄清这一点。我只是想知道我应该用 netbeans gui builder 制作的 GUI 做什么。我不知道如何将它与我自己的代码一起使用。我可以通过 netbeans 生成的一些代码,但它超过 6000 行。
标签: java swing user-interface netbeans swingworker