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

从给定表单中提取值

蒋胡非
2023-03-14

我想在单击按钮save时提取值。从JTextFieldJTable行和列中提取值。只是想要一个粗略的想法如何做提取和保存不同变量的值。我想在“保存”按钮下执行这些保存操作。

package build;

import java.awt.*;
import javax.swing.*;
import com.jgoodies.forms.layout.FormLayout;
import com.jgoodies.forms.layout.ColumnSpec;
import com.jgoodies.forms.layout.RowSpec;
import com.jgoodies.forms.factories.FormFactory;
import javax.swing.table.DefaultTableModel;
import javax.swing.border.TitledBorder;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class Table_Edit {

    private JTextField textField;
    private JTable table;
    private String Table_Name = new String();

    public Table_Edit() {
        JFrame frame = new JFrame("Table");

        frame.setSize(600, 400);
        frame.getContentPane().setLayout(new FormLayout(new ColumnSpec[]{
            FormFactory.RELATED_GAP_COLSPEC,
            FormFactory.DEFAULT_COLSPEC,
            FormFactory.RELATED_GAP_COLSPEC,
            FormFactory.DEFAULT_COLSPEC,
            FormFactory.RELATED_GAP_COLSPEC,
            FormFactory.DEFAULT_COLSPEC,
            FormFactory.RELATED_GAP_COLSPEC,
            FormFactory.DEFAULT_COLSPEC,
            FormFactory.RELATED_GAP_COLSPEC,
            FormFactory.DEFAULT_COLSPEC,
            FormFactory.RELATED_GAP_COLSPEC,
            FormFactory.DEFAULT_COLSPEC,
            FormFactory.RELATED_GAP_COLSPEC,
            FormFactory.DEFAULT_COLSPEC,
            FormFactory.RELATED_GAP_COLSPEC,
            FormFactory.DEFAULT_COLSPEC,
            FormFactory.RELATED_GAP_COLSPEC,
            FormFactory.DEFAULT_COLSPEC,
            FormFactory.RELATED_GAP_COLSPEC,
            FormFactory.DEFAULT_COLSPEC,
            FormFactory.RELATED_GAP_COLSPEC,
            FormFactory.DEFAULT_COLSPEC,
            FormFactory.RELATED_GAP_COLSPEC,
            FormFactory.DEFAULT_COLSPEC,
            FormFactory.RELATED_GAP_COLSPEC,
            FormFactory.DEFAULT_COLSPEC,
            FormFactory.RELATED_GAP_COLSPEC,
            FormFactory.DEFAULT_COLSPEC,
            FormFactory.RELATED_GAP_COLSPEC,
            ColumnSpec.decode("default:grow"),
            FormFactory.RELATED_GAP_COLSPEC,
            ColumnSpec.decode("default:grow"),},
            new RowSpec[]{
            FormFactory.RELATED_GAP_ROWSPEC,
            FormFactory.DEFAULT_ROWSPEC,
            FormFactory.RELATED_GAP_ROWSPEC,
            RowSpec.decode("default:grow"),
            FormFactory.RELATED_GAP_ROWSPEC,
            RowSpec.decode("default:grow"),}));

        JLabel lblTableName = new JLabel("Table Name :");
        frame.getContentPane().add(lblTableName, "2, 2, right, default");

        textField = new JTextField(Table_Name);
        textField.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
        frame.getContentPane().add(textField, "4, 2, 9, 1, left, center");
        textField.setColumns(10);

        JScrollPane scrollPane = new JScrollPane();
        frame.getContentPane().add(scrollPane, "3, 4, 29, 1, fill, fill");

        table = new JTable();
        table.setFillsViewportHeight(true);
        scrollPane.setViewportView(table);
        table.setBorder(new TitledBorder(null, "",
            TitledBorder.CENTER, TitledBorder.TOP, null, null));
        table.setColumnSelectionAllowed(true);
        table.setCellSelectionEnabled(true);
        table.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
        table.setModel(new DefaultTableModel(
            new Object[][]{
            {null, null, null, null},
            {null, null, null, null},
            {null, null, null, null},
            {null, null, null, null},
            {null, null, null, null},
            {null, null, null, null},
            {null, null, null, null},
            {null, null, null, null},
            {null, null, null, null},
            {null, null, null, null},
            {null, null, null, null},
            {null, null, null, null},
            {null, null, null, null},
            {null, null, null, null},},
            new String[]{
            "Column Name", "Data Type", "NN", "PK"
        }) {
            Class[] columnTypes = new Class[]{
                String.class, Object.class, Boolean.class, Boolean.class
            };

            public Class getColumnClass(int columnIndex) {
                return columnTypes[columnIndex];
            }
        });
        table.getColumnModel().getColumn(0).setResizable(false);
        table.getColumnModel().getColumn(0).setPreferredWidth(106);
        table.getColumnModel().getColumn(1).setResizable(false);
        table.getColumnModel().getColumn(1).setPreferredWidth(92);
        table.getColumnModel().getColumn(2).setResizable(false);
        table.getColumnModel().getColumn(2).setPreferredWidth(26);
        table.getColumnModel().getColumn(3).setResizable(false);
        table.getColumnModel().getColumn(3).setPreferredWidth(30);

        JPanel panel = new JPanel();
        frame.getContentPane().add(panel, "32, 6, right, fill");

        JButton Save = new JButton("Save");
        Save.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {

                System.out.print(Table_Name);
            }
        });
        Save.setMaximumSize(new Dimension(33, 19));
        Save.setIcon(new ImageIcon(Table_Edit.class.getResource(
            "/com/sun/java/swing/plaf/windows/icons/TreeOpen.gif")));
        panel.add(Save);

        JButton btnNewButton_1 = new JButton("Exit");
        btnNewButton_1.setIcon(new ImageIcon(Table_Edit.class.getResource(
            "/javax/swing/plaf/metal/icons/ocean/close.gif")));
        panel.add(btnNewButton_1);


        frame.setVisible(true);
    }

    public static void main(String[] args) {
        new Table_Edit();
    }
}

共有1个答案

充栋
2023-03-14

除了调用TextField.getText()之外,还可以获得对表模型的引用,并使用getValueat()迭代值:

JButton save = new JButton("Save");
save.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        System.out.println(textField.getText());
        TableModel model = table.getModel();
        for (int r = 0; r < model.getRowCount(); r++) {
            for (int c = 0; c < model.getColumnCount(); c++) {
                System.out.print(model.getValueAt(r, c) + " ");
            }
            System.out.println();
        }
    }
});
 类似资料:
  • 有人知道从工作簿中的每个工作表中提取某个单元格值的命令吗?或者我可以写一个简单的宏?

  • 问题内容: 在Java中,我有: 我想获取参数值(PAR,NYC)。 所以我创建了正则表达式: 返回假。正在返回。 我究竟做错了什么? 问题答案: 它不必是正则表达式。由于我认为没有标准的方法可以处理此问题,因此我使用的是从某处复制的内容(可能有一些修改): 因此,当您调用它时,将获得所有参数及其值。该方法处理多值参数,因此使用而不是,并且在您的情况下,您需要获取第一个列表元素。

  • 使用OpenXML(C#)解析*. docx文档有一个问题。 下面是我的步骤: 1。加载*。docx文档 2。接收段落列表 3。在每个段落中查找文本、图像和表格元素 4。为每个文本和图像元素创建html标记 5。将输出另存为*。html文件 我已经了解了如何在文档中定位图像文件并将其解压缩。现在有一个步骤要做——找到表格在文本(段落)中的位置。 如果有人知道如何在*中定位表。docx文档使用Ope

  • 我想在窗体的操作重定向它之前从窗体中获取值。例如,在这个表单中,我想抓取“text_one”并将其发送到数据库,然后再将其重定向到google。我还想在谷歌上看到“text_one”。我该怎么办?

  • 我做了一个表格来捕获2个数据。 电子邮件地址 每个小组都有自己的电子表格。[根据发布的代码,每个人在同一个电子表格中都有自己的工作表。] 当用户提交表单时,表单应捕获电子邮件地址,并将数据发送到用户订阅的相应电子表格。 这就是我到目前为止所做的。我被卡住了... 有没有一种方法可以从特定的文本框/选项中检索数据...等等? 我知道的唯一方法是循环所有数据并逐个检索。。这使得我很难将两个数据链接在一

  • 我正在尝试从表中提取特定的信息,基于哪个单元格被单击。到目前为止,我已经创建了一个可以在单击时工作的函数。问题是它总是返回第一个单元格行的值。 HTML: 如您所见,我尝试了和来启用提取槽ID。这是单击时调用的函数。 和总是从表的第一行返回值,即使我单击第二行、第三行、第四行等。 我如何声明我想要的信息不仅来自第一个,而且来自我单击的行。提前谢谢!