Java 从文本字段矩阵中获取文本
我已经创建了一个文本字段矩阵,但是我无法获得它正在这些文本字段中键入的文本。我只能访问矩阵中的文本字段对象本身,不能访问这些文本字段中的实际文本 这是全部代码。我的主要语言是西班牙语,所以有些演讲是西班牙语的,还有一些短语。在代码下,我将写下我的主要问题:Java 从文本字段矩阵中获取文本,java,swing,matrix,textfield,Java,Swing,Matrix,Textfield,我已经创建了一个文本字段矩阵,但是我无法获得它正在这些文本字段中键入的文本。我只能访问矩阵中的文本字段对象本身,不能访问这些文本字段中的实际文本 这是全部代码。我的主要语言是西班牙语,所以有些演讲是西班牙语的,还有一些短语。在代码下,我将写下我的主要问题: import java.awt.Color; import java.awt.Cursor; import javax.swing.*; import java.awt.Rectangle; import java.awt.event.Act
import java.awt.Color;
import java.awt.Cursor;
import javax.swing.*;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javafx.scene.layout.Border;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import java.util.Arrays;
public class FrmArregloControles extends javax.swing.JFrame implements ActionListener{
public FrmArregloControles() {
initComponents();
iniciarComponentes();
}
private void iniciarComponentes() {
byte numRen = Byte.parseByte(JOptionPane.showInputDialog(null, "¿Número de Renglones?")),
numCol = Byte.parseByte(JOptionPane.showInputDialog(null, "¿Número de Columnas?"));
int [][] intMatriz = new int[numRen][numCol];
txtMatriz = new JTextField[numRen][numCol];
String txt = JOptionPane.showInputDialog(this,"¿Qué ponemos?");
if (numRen >= 1 && numCol >= 1) {
lblRen = new JLabel[numRen];
lblCol = new JLabel[numCol];
for (byte r = 0; r < txtMatriz.length; r++) {//for controla los renglones (r)
// creacion del vector de etiquetas lblRen
lblRen[r] = new JLabel();
// CONFIURACION DE PROPIEDADES PARA EL VECTOR PARA ETIQUTAS DE RENGLONES
lblRen[r].setBounds(new Rectangle(15,
15 + (25 + 10) * (r + 1),
40, 25));
lblRen[r].setText("[" + (r+1) + "]");
lblRen[r].setBorder(border);
lblRen[r].setHorizontalAlignment(SwingConstants.CENTER);
//Adición de la etiqueta a la forma
this.add(lblRen[r]);
for (byte c = 0; c < txtMatriz[r].length; c++){
// creacion del vector de etiquetas lblRen
lblCol[c] = new JLabel();
// CONFIURACION DE PROPIEDADES PARA EL VECTOR PARA ETIQUTAS DE COLUMNAS
lblCol[c].setBounds(new Rectangle(15 + (lblRen[0].getWidth() + 10) * (c + 1),
15,
40, 25));
lblCol[c].setText("[" + (c+1) + "]");
lblCol[c].setBorder(border);
lblCol[c].setVerticalAlignment(SwingConstants.CENTER);
lblCol[c].setHorizontalAlignment(SwingConstants.CENTER);
//Adición de la etiqueta a la forma
this.add(lblCol[c]);
//Creación de matriz de campos de texto
txtMatriz[r][c] = new JTextField();
//Configuración de propiedades de campos de texto
txtMatriz[r][c].setBounds(new Rectangle(15 + (lblRen[0].getWidth() + 10) * (c+1),
15 + (lblRen[0].getHeight() + 10) * (r + 1),
40, 25));
txtMatriz[r][c].setToolTipText("Campo " + (r + 1) + ", " + (c + 1));
txtMatriz[r][c].setCursor(new Cursor(Cursor.TEXT_CURSOR));
this.add(txtMatriz[r][c]);
txtMatriz[r][c].setText(txt);
txtMatriz[r][c].getText();
}
}
}
else {
JOptionPane.showMessageDialog(null, "Tamaño Invalido");
}
btnCapturar.setBounds (new Rectangle(((((40 + (numRen * 20))- 30) + (numRen * 10)/2)),
((numCol*35) + 50 ),
100, 25));
this.add(btnCapturar);
btnCapturar.addActionListener(this);
}
//Button's function
public void actionPerformed(ActionEvent e){
System.out.println(Arrays.deepToString(txtMatriz));
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 400, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 300, Short.MAX_VALUE)
);
pack();
}// </editor-fold>
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new FrmArregloControles().setVisible(true);
}
});
}
//DECLARACIÓN DE CONTROLES
JLabel lblRen[], lblCol[];
JTextField txtMatriz[][];
JButton btnCapturar = new JButton("Capturar");
javax.swing.border.Border border = BorderFactory.createLineBorder(Color.black, 1);
// Variables declaration - do not modify
// End of variables declaration
}
导入java.awt.Color;
导入java.awt.Cursor;
导入javax.swing.*;
导入java.awt.Rectangle;
导入java.awt.event.ActionEvent;
导入java.awt.event.ActionListener;
导入javafx.scene.layout.Border;
导入javax.swing.JOptionPane;
导入javax.swing.JTextField;
导入java.util.array;
公共类frmareglocontroles扩展了javax.swing.JFrame,实现了ActionListener{
公共FrmArregloControles(){
初始化组件();
IniciarComponents();
}
私有无效在CIARComponents()中{
byte numRen=byte.parseByte(JOptionPane.showInputDialog(null,“?Número de Renglones?”),
numCol=Byte.parseByte(JOptionPane.showInputDialog(null,“?Número de Columnas?”);
int[][]intMatriz=新的int[numRen][numCol];
txtmariz=新的JTextField[numRen][numCol];
String txt=JOptionPane.showInputDialog(这是“Quéponemos?”);
如果(numRen>=1&&numCol>=1){
lblRen=新的JLabel[numRen];
lblCol=新的JLabel[numCol];
对于(字节r=0;r
我想要的是从其中的每个文本字段中获取txtMatriz的文本,并将它们分配到不同的矩阵中,但不是int类型的矩阵。我尝试过一些方法,但是我发现JTextField不能转换成int。所以说,我假设我不能通过使用Integer.p获得这些文本字段的文本
for(byte i = 0; i < intMatrix.length; i++){
System.out.println(Arrays.toString(intMatrix[i]));
}
public void actionPerformed(ActionEvent e){
for (byte r = 0; r < txtMatriz.length; r++) {
for (byte c = 0; c < txtMatriz[r].length; c++) {
intMatriz[r][c] = Integer.parseInt(txtMatriz[r][c].getText());
}
}
System.out.println(Arrays.deepToString(intMatriz));
}
[[5, 5, 5, 5, 5], [5, 5, 5, 5, 5], [5, 5, 5, 5, 5], [5, 5, 5, 5, 5], [6, 6, 5, 6, 6]]