当前位置: 首页 > 知识库问答 >
问题:

在运行时从创建的JTextfield中获取值

从建明
2023-03-14

我制作了一个应用程序,它将获取数据库的列名,并在运行时基于数据库的列名创建一个jlabel和jtextfield。

下面是代码片段:我在这里使用Netbeans。。。

 public void getColumn(){
        String sql = "SELECT * from user";
        jPanel.setLayout(new GridLayout(0,2));

        try {
            pst = conn.prepareStatement(sql);
            rs = pst.executeQuery();
            ResultSetMetaData rsmd = rs.getMetaData();
            int columnCount = rsmd.getColumnCount();

            ArrayList<String> columns= new ArrayList<String>();
            for(int i = 1; i<= columnCount; i++){
                columns.add(rsmd.getColumnName(i));
                System.out.println(String.valueOf(columns));
            }
            ArrayList<JTextField> fields = new ArrayList<JTextField>();
        for(int i = 0; i <columns.size();i++){
                JLabel jl = new JLabel(String.valueOf(columns.get(i)));
            jPanel.add(jl);
            JTextField f = new JTextField(50);
            fields.add(f);
            jPanel.add(f);
                        this.revalidate();
                        this.repaint();
               }

        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }


这将是示例输出。

id | ______________
fName | _____________
mName | _______________
lName | ________________

引用JTextFields的行。。

但是,我无法获取在jtextfields中输入的值。我试过使用下面的代码。但运气不好。感谢您的帮助。

for(JTextField field : fields){
                JOptionPane.showMessageDialog(null, field.getText());
        }

共有2个答案

柴嘉年
2023-03-14

更好的解决方案是使用JTable。有关更多信息,请阅读Swing教程中有关如何使用表格的部分。

您还可以从数据库中的表中查看一些简单的代码,以便开始使用。有关最简单的解决方案,请参阅“TableFromDatabaseExample”代码。

束飞捷
2023-03-14

也许你可以试试这个:

Component children[] = jp.getComponents();
for(Component child : children) {
  if(child instanceof JTextField) [
     JOptionPane.showMessageDialog(null, ((JTextField)child).getText());
  }
}
 类似资料:
  • 我正在为http请求编写一个通用的路由。而且endpoint不是静态值。路由代码: 提前谢了。

  • 我是android的新手,不知道我做错了什么,这个类得到了经度和纬度并发送到另一个类,代码抛出了一个错误请告诉我该怎么做怎么做: public void onRequestPermissionsResult出错(int requestCode,String[]permissions,int[]grantResults

  • 我有一个UserControl,其中有两个文本框。用户可以根据需要添加这些UserControls的多个副本。每个UserControl都添加到面板的底部。如何从这些用户控件中获取信息。 这是添加我当前使用的UserControl的代码: 以从文本框中获取数据,但MailingReference.Controls不存在。 我不确定如何遍历每个MailingReference UserControl

  • 问题:我想知道是否可以从DocumentFilter获取JTextfield类型 我读过java文档,搜索了很多,但没有找到任何信息。 需要:我在两个JTextfields上设置了相同的DocumentFilter。当事件发生时,在DocumentFilter的“replace”方法中,我想知道哪个textfield导致了事件。 用例:我有大约15个文本字段(未来可能会增加),我希望对所有这些字段

  • 问题内容: 有人可以帮我如何在运行时设置宽度吗?我希望在运行时调整文本字段的大小。它将要求用户提供长度,然后输入将更改文本字段的宽度。 我正在为此使用布局,因为我处于编辑模式。 问题答案: 您只需要使用。这将使您在运行时增加它的大小。之所以无法做到这一点,是因为布局。这是不鼓励使用的主要原因之一。这是一个尝试的小例子: 对于绝对定位你需要调用上,以实现结果,但你应该始终牢记,为什么这种做法是气馁,