Я хочу создать метод, в котором я могу просто захватить текст из текстового поля в моей форме Swing. Однако попытка заставить его распознаваться одним из моих «операторов if» заканчивается ошибкой, сообщающей мне, что она не может найти символ, несмотря на то, что он определен. Я также хочу создать более чистый код, так как я делаю это, похоже, довольно повторяющийся и беспорядочный; Есть ли способ сократить повторения и назвать их переменными?Создание Java-метода не может быть прочитано даже при правильной работе
public class TextGrabber {
int [] grabText = {Integer.parseInt(DigitValue.getText())};
}
int digit1 = TextGrabber;
if (digit1 == 1) {
Digi1.setVisible(false);
Digi2.setVisible(false);
Digi3.setVisible(true);
Digi4.setVisible(false); //This textfield will be hidden
Digi5.setVisible(false);
Digi6.setVisible(true);
Digi7.setVisible(false);
}
int digit2 = Integer.parseInt(DigitValue.getText());
if (digit2 == 2) {
Digi1.setVisible(true);
Digi2.setVisible(false);
Digi3.setVisible(true);
Digi4.setVisible(true); //This textfield will be hidden
Digi5.setVisible(true);
Digi6.setVisible(false);
Digi7.setVisible(true);
}
int digit3 = Integer.parseInt(DigitValue.getText());
if (digit3 == 3) {
Digi1.setVisible(true);
Digi2.setVisible(false);
Digi3.setVisible(true);
Digi4.setVisible(true); //This textfield will be hidden
Digi5.setVisible(false);
Digi6.setVisible(true);
Digi7.setVisible(true);
}
int digit4 = Integer.parseInt(DigitValue.getText());
if (digit4 == 4) {
Digi1.setVisible(false);
Digi2.setVisible(true);
Digi3.setVisible(true);
Digi4.setVisible(true); //This textfield will be hidden
Digi5.setVisible(false);
Digi6.setVisible(true);
Digi7.setVisible(false);
}
int digit5 = Integer.parseInt(DigitValue.getText());
if (digit5 == 5) {
Digi1.setVisible(true);
Digi2.setVisible(true);
Digi3.setVisible(false);
Digi4.setVisible(true); //This textfield will be hidden
Digi5.setVisible(false);
Digi6.setVisible(true);
Digi7.setVisible(true);
}
int digit6 = Integer.parseInt(DigitValue.getText());
if (digit6 == 6) {
Digi1.setVisible(true);
Digi2.setVisible(true);
Digi3.setVisible(false);
Digi4.setVisible(true); //This textfield will be hidden
Digi5.setVisible(true);
Digi6.setVisible(true);
Digi7.setVisible(true);
}
int digit7 = Integer.parseInt(DigitValue.getText());
if (digit7 == 7) {
Digi1.setVisible(true);
Digi2.setVisible(false);
Digi3.setVisible(true);
Digi4.setVisible(true); //This textfield will be hidden
Digi5.setVisible(false);
Digi6.setVisible(true);
Digi7.setVisible(false);
}
int digit8 = Integer.parseInt(DigitValue.getText());
if (digit8 == 8) {
Digi1.setVisible(true);
Digi2.setVisible(true);
Digi3.setVisible(true);
Digi4.setVisible(true); //This textfield will be hidden
Digi5.setVisible(true);
Digi6.setVisible(true);
Digi7.setVisible(true);
}
int digit9 = Integer.parseInt(DigitValue.getText());
if (digit9 == 9) {
Digi1.setVisible(true);
Digi2.setVisible(true);
Digi3.setVisible(true);
Digi4.setVisible(true); //This textfield will be hidden
Digi5.setVisible(false);
Digi6.setVisible(true);
Digi7.setVisible(true);
}
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
int AddOneDigit = Integer.parseInt(DigitValue.getText());
AddOneDigit = AddOneDigit + 1;
String NewSet = Integer.toString (AddOneDigit);
DigitValue.setText(NewSet);
ShowDigitActionPerformed(evt);
int check = Integer.parseInt(DigitValue.getText());
if (check >= 10) {
check = 0;
String CheckS = Integer.toString (check);
DigitValue.setText(CheckS);
Digi1.setVisible(true);
Digi2.setVisible(true);
Digi3.setVisible(true);
Digi4.setVisible(false); //This textfield will be hidden
Digi5.setVisible(true);
Digi6.setVisible(true);
Digi7.setVisible(true);
}
Извините, что беспокою вас, но я довольно новыми для Java. Не могли бы вы расширить доступ к тому, что вы имели в виду, сохраняя маски как массив? Код, который вы написали, я предполагаю, либо войдет в основной класс, либо в открытый класс формы Swing, я прав? –
Не беспокойтесь, мой друг, я это понял :) Спасибо за вашу помощь! –
Я даже зашел так далеко, чтобы использовать с ним бит-маски, например 0b001_0010 - он позволяет выражать всю маску в виде 8 байтов, возможно, сделать ее более читаемой (хотя для этого требуется бит-сдвиг) неоспоримо, что делает его более легко редактируется. – vaxquis