Java-如何在Netbeans gui builder中实现GUI的代码?

时间:2015-08-19 15:22:59

标签: java swing user-interface netbeans swingworker

我使用NetBeans GUI构建器创建了一个GUI,它看起来很棒!但是,我不知道如何实现代码来改变GUI内部的值。

我的程序连接到数据库,并为每个患者提取性别,房间号,床号,姓名和推荐来源等信息。 GUI的目的是经常表示对该信息的任何更改,因此我希望它每60秒左右自动与数据库同步。我可以编写数据库同步的代码,我已经创建了GUI。

enter image description here 我的问题是如何更新在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的值。

1 个答案:

答案 0 :(得分:3)

  • 保留一个Controller类,应用程序,老板。
  • 为从用于创建GUI的数据库加载的所有数据保留控制器的DataModel类字段;由控制器完成。
  • 然后是View,你的JFrame,控制器的一个字段。

现在,在GUI构建器中,您不想重复自己(主要是DRY)。所有这些房间组件应该是List个房间。使用GUI构建器添加一些元素后,您可以调整数组/列表的代码。

控制器可以在JFrame中设置内容:您添加到JFrame:addPatient(int room, int bed, String name)并可以从列表中获取组件并使用Ctrl-SpacesetText("Jane")选择任何内容。< / p>

制作数据类,例如RoomBedPatient

(使用版本控制。)