-2

我想从一个有 3 列的数据库表中获取数据。每个单元格中有 3 个以上的单词。在由 3 个文本字段输入的第二列中。3个字段是品牌,名称,数量。我不能说一个领域会有多少字。它可以是一个,两个或三个。因此,我尝试进行拆分,但这并没有达到我想要的效果。

最终目的是当我选择一个jTable row我想将其设置为jTextFields.

这是我的代码:

try {
        //Statement s = DB.somak2().createStatement();
        DefaultTableModel dt = (DefaultTableModel) jTable1.getModel();
        //ResultSet rs = s.executeQuery("select * from rawmat");

        int y = jTable1.getSelectedRow();

        id1.setText(dt.getValueAt(y, 0).toString());
        brand.setText(dt.getValueAt(y, 1).toString());
        quantity.setText(dt.getValueAt(y, 2).toString());
        Price.setText(dt.getValueAt(y, 3).toString());
        if (dt.getValueAt(y, 4).toString().equals("Yes")) {
            jCheckBox1.setSelected(true);

        } else if (dt.getValueAt(y, 4).toString().equals("No")) {
            jCheckBox2.setSelected(true);
        }

        if (dt.getValueAt(y, 5).toString().equals("1")) {
            jCheckBox3.setSelected(true);
        } else if (dt.getValueAt(y, 5).toString().equals("0")) {

            jCheckBox4.setSelected(true);
        }

} catch (Exception e) {
        e.printStackTrace();
    }

除了品牌还有2个文本字段,但3个texfields(包括品牌)只有一个表列来获取和设置数据。

4

2 回答 2

0

由于我没有足够的代表,我无法发表评论,所以我在这里发帖。您必须在此处发布代码,直到您尝试过。

列字段如何分隔?用逗号、空格还是什么?

创建一个字符串列表。然后根据分隔符拆分字符串(您从 ReslutSet 获得)。然后使用循环迭代到列表的大小,您可以创建 JTextField 并将数据添加到文本字段。

List<String> fielddata = new ArrayList<String>();
fielddata = Arrays.asList(header.split("\\s*" +(your delimeter separating each words here)+ "\\s*"));
于 2013-04-03T10:25:22.670 回答
0

根据您的问题,我假设您想连续收集数据?

尝试:

public String brand;
public String name;
public String quantity;

public void setStringsFromDB() {
  /*
   * getRow and getColumn should work here.
   */
}

那应该可行。要将其放入 JTextField 中,请使用JTextField.setText(String text)(链接到 JTextField 继承的 JTextComponent.setText())方法。

编辑:我不确定这个问题了,但尝试使用:

brand.setText((String) dt.getValueAt(y, 1));

我想指出的是,

(String) dt.getValueAt(y, 1)

编辑2:

所以你想用输入到文本框中的内容填充该行的列?使用 3 个 JTextField 可能会更好(假设项目、品牌、名称、数量。您可以为更多项目添加更多文本字段)。这是一个例子:

JTextButton button = new JTextButton("Add items to list");
JTextField brand = new JTextField("Enter brand name here...");
JTextField name = new JTextField("Enter item name here...");
JTextField quantity = new JTextField("Enter desired quantity here...");
JTable jTable1 = new JTable(); // I'm not sure about JTables. but you should already have this...

public Constructor() {
  button.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
      int row = jTable1.getSelectedRow();
      jTable1.setItem(row, 0, brand.getText());
      jTable1.setItem(row, 1, name.getText());
      jTable1.setItem(row, 2, quantity.getText());
      // Don't take my word for those methods, you might need to check the JavaDoc... (link at the bottom.)
    }
  });
}

JTable JavaDoc

继续:

您可能想要扫描一个 JTextField?如果是这样,请对以下内容进行一些研究:

  • 扫描器
  • Scanner.useDelimiter
  • JTextField
于 2013-04-03T10:50:08.727 回答