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