Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在单帧中迭代显示在UI中的数据库中的多个数据?_Java_Swing_User Interface_Jframe - Fatal编程技术网

Java 如何在单帧中迭代显示在UI中的数据库中的多个数据?

Java 如何在单帧中迭代显示在UI中的数据库中的多个数据?,java,swing,user-interface,jframe,Java,Swing,User Interface,Jframe,假设我在数据库中有一些数据,我正在使用查询检索这些数据 例如: SELECT * FROM acsuserdetail where "+useranme+"= '"+arg+"' " System.out.print(" FirstName = " + rs.getString("FirstName")); 这将返回两个结果,即: FirstName = Anurag FirstName = Arvind 但当我在UI中以JFrame的形式显示这些数据时,它会打开两个包含两个细节的框架,如

假设我在数据库中有一些数据,我正在使用查询检索这些数据

例如:

SELECT  * FROM acsuserdetail where "+useranme+"= '"+arg+"' "
System.out.print(" FirstName = " + rs.getString("FirstName"));
这将返回两个结果,即:

FirstName = Anurag
FirstName = Arvind
但当我在UI中以
JFrame
的形式显示这些数据时,它会打开两个包含两个细节的框架,如果有更多细节,则会打开该数量的框架。这可能是因为来自数据库的数据是一个接一个地来的,而不是单次来的。我希望所有信息都整合到一个框架中。用户界面的代码是:-

public UIForShowingData(String data) {
    frame = new JFrame("Showing Data");
    frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    frame.setVisible(true);
    frame.setSize(300, 300);
    button = new JButton("OK");
    frame.setLayout(null);
    button.setBounds(250, 250, 40, 50);
    frame.add(button);
    System.out.println(data.length());
    tx = new JTextField(data);
    frame.add(tx);
    tx.setBounds(50, 50, 40, 50);
    button.addActionListener(new ActionListener() {    
        @Override
        public void actionPerformed(ActionEvent arg0) {
            frame.dispose();        
        }
    });
}

请注意,鉴于问题中的代码片段,不清楚发生了什么。然而,我将在黑暗中拍摄并猜测,
UIForShowingData(stringdata)
方法正在为通过查询数据库获得的结果集中的每个记录调用

大概是这样的:

while (rs.next()) {
    ...
    UIForShowingData ui = new UIForShowingData(rs.getString("FirstName"));
    ...
}
这就解释了为什么在数据库中有许多帧作为记录打开。为了解决这个问题,您可以考虑使用A来存储多个值,并使用此集合在单个<代码> JFrase中正确显示数据。与使用文本字段显示记录相比,使用或可能是更好的选择


离题 请注意,您的查询易受攻击。为了避免这种情况,您可能想尝试一下。例如:

String query = "SELECT  * FROM acsuserdetail where useranme = ?";
PreparedStatement pst = connection.prepareStatement(query);
pst.setString(arg); // where arg is the argument to compare with
ResultSet rs = pst.executeQuery();
Swing设计用于使用,因此不鼓励使用
null
布局和方法,例如
setBounds(…)
setLocation(…)
setXxxSize(…)
。发件人:

虽然可以不使用布局管理器,但应该使用 布局管理器(如果可能的话)。布局管理器使它更容易 要调整为外观和感觉相关零部件外观,请执行以下操作: 不同的字体大小、容器不断变化的大小以及 地区。布局管理器也可以被其他应用程序轻松重用 容器以及其他程序

另请参见以下主题: