gpt4 book ai didi

java - 从运行时创建的 JTextField 获取值

转载 作者:太空宇宙 更新时间:2023-11-04 06:58:23 25 4
gpt4 key购买 nike

我设置了一个小程序,可以在运行时创建行和列,它是一个数学类实现集,我已经有了创建行和列的程序,但接下来我想做的是能够获取内部的值,然后加载相同结构的另一种形式,获取该形式的值,然后添加它们并在最终形式上显示它们。对于整个 java 事物来说相当新,所以如果有人能提供帮助,那就意味着世界。这是我到目前为止所拥有的..

import java.awt.*;
import java.awt.event.ActionEvent;
import javax.swing.*;

public class Matrice extends JFrame {

protected static final int PREF_W = 200;
protected static final int PREF_H = 200;
JPanel mainPanel = new JPanel() {
@Override
public Dimension getPreferredSize() {
return new Dimension(PREF_W, PREF_H);
}
};

public JComponent getMainComponent() {
return mainPanel;
}

public Matrice(){
int rows, columns, end;

String RI, CI;

RI = JOptionPane.showInputDialog(null, "How many rows: ");
rows = Integer.parseInt(RI);
CI = JOptionPane.showInputDialog(null, "How many columns: ");
columns = Integer.parseInt(CI);
end = rows * columns;

JPanel holder = new JPanel(new GridLayout(rows, columns));
holder.setVisible(true);
for(int i = 0; i < end; i ++){
holder.add(new JTextField("output"));
}
JPanel set = new JPanel(new GridLayout(1, 0));
JTextField r = new JTextField("rows");
JTextField c = new JTextField("columns");
set.add(r);
set.add(c);
set.add(new JButton("Set"));
mainPanel.add(set, BorderLayout.SOUTH);
mainPanel.add(holder, BorderLayout.NORTH);
}

private static void createAndShowGui() {
Matrice test = new Matrice();
JFrame frame = new JFrame("Matrice");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(test.getMainComponent());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGui();
}
});
}

}

不用介意按钮和预设的 TextField

最佳答案

您的问题的简单答案是,您需要在获取大小后定义一个 TextField 数组:

TextField[][] inputFields = new TextField[行][列];

现在添加TextFields

getContentPane().setLayout(new GridLayout(rows, columns));
for(int i = 0; i < rows; i++){
for(int j = 0; j < columns; j++){
inputFields[i][j] = new TextField("output");
holder.add(inputFields[i][j]);
}
}

上面可能有语法错误,因为我直接在此处输入。

关于java - 从运行时创建的 JTextField 获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22432215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com