Мне нужно уметь вводить ввод текстового поля в массив символов. Я попытался получить текст из текстового поля и сделать его строкой, чтобы затем преобразовать эту строку в символы, однако это не сработает.преобразование значения текстового поля в массив символов
Я получаю ошибку на этой линии: String string = TextField.getText();
Состояния ошибок, которые я: Cannot make a static reference to a non static method getText() from the type textComponent
Я не совсем уверен, где я буду неправильно, так что любая помощь будет оценена.
package lab4;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Scanner;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import lab3.FontSize;
import lab3.Calculator.event;
public class Scrolling extends JFrame{
JLabel label;
JTextField Textfield;
JPanel panel;
public String string;
public static void main (String[]args){
Scrolling scroller = new Scrolling();
scroller.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
scroller.setTitle("Marquee scroller");
scroller.setSize(1500,750);
scroller.setVisible(true);
scroller.setLayout(new GridLayout(2,1));
}
public Scrolling() {
JPanel panel1 = new JPanel();
panel1.setLayout(new GridLayout(1,2));
panel1.setSize(1500, 300);
JLabel label = new JLabel("Enter text and press return");
label.setVisible(true);
label.setFont(label.getFont().deriveFont(30.0f));
label.setHorizontalAlignment(JLabel.CENTER);
panel1.add(label);
JTextField TextField = new JTextField();
TextField.setVisible(true);
TextField.setFont(TextField.getFont().deriveFont(30.0f));
TextField.setHorizontalAlignment(JTextField.CENTER);
panel1.add(TextField);
JPanel panel2 = new JPanel();
panel2.setLayout(new GridLayout(1,10));
Label[] labelArray = new Label[10];
for(int i = 0; i < 10; i ++){
labelArray[i] = new Label("");
labelArray[i].setBackground(Color.white);
labelArray[i].setAlignment(Label.CENTER);
labelArray[i].setFont(new Font("Serif", Font.BOLD, 30));
labelArray[i].setText("1");
panel2.add(labelArray[i]);
}
add(panel2);
add(panel1);
event e = new event();
TextField.addActionListener(e);
}
public class event implements ActionListener {
public void actionPerformed(ActionEvent e) {
String string = TextField.getText();
char[] charArray = string.toCharArray();
}
}
}
Ура! Я обнаружил исходную проблему, это была простая ошибка, и я просто случайно инициализировал JTextField как «Текстовое поле», а не «TextField». – crazychris119
приятно помочь, если полезно, не стесняйтесь повышать или отмечать ответ как принято;) –