How would I change a JLabel's text from an ActionListener listening to a JButton under the same frame?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 How would I change a JLabel's text from an ActionListener listening to a JButton under the same frame?

Сообщение Anonymous »

Я пытаюсь сделать численное преобразователь, позволяя вам преобразовать в/из HEX, десятичного и бинарного. До сих пор я работаю только над частью, которая позволяет вам выбрать входы и выходы на интерфейсе. У меня есть метка для ввода, метка для вывода и кнопку для прохождения каждых. Под велосипедом я имею в виду, что каждый раз, когда нажимается кнопка рядом с меткой, она будет проходить через возможные входы и выходы. (Hex-> Decimal-> Binary) Все код работает, за исключением части, где я пытаюсь установить текст метки из ActionListener под кнопкой цикла. Я использую label.settext (), который должен работать, но он не работает. Вот мой код. Извините, это действительно долго, я отрисовал как можно больше неактуальных вещей. < /P>
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Scanner;
import javax.swing.*;

public class Converter {
public static void main(String args[]) {
Window w = new Window();
w.initWindow();
}
}

class Window {
public void initWindow() {
//make frame
JFrame frame = new JFrame("Number Type Converter");
int w = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDisplayMode().getWidth();
int h = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDisplayMode().getHeight();
Dimension frameSize = new Dimension(w/2, h/2);
frame.setPreferredSize(frameSize);
frame.setSize(frameSize);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);

//make components in frame
Container panel = frame.getContentPane();
panel.setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
JLabel l1 = new JLabel("Input: Hexadecimal");
JLabel l2 = new JLabel("Output: Hexadecimal");
JButton b;

c.weightx = 0.25;
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 0;
c.gridy = 0;
panel.add(l1, c);
b = new JButton("Cycle Input");
c.weightx = 0.25;
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 1;
c.gridy = 0;
panel.add(b, c);
b.addActionListener(new ButtonPress(l1, l2));
c.weightx = 0.25;
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 0;
c.gridy = 1;
panel.add(l2, c);
b = new JButton("Cycle Output");
c.weightx = 0.25;
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 1;
c.gridy = 1;
panel.add(b, c);
b.addActionListener(new ButtonPress(l1, l2));
}
}

class ButtonPress implements ActionListener {
JLabel il, ol;
@Override
public void actionPerformed(ActionEvent e) {
String className = e.getSource().getClass().getName();
String typeText = "";
if (className == "javax.swing.JButton") {
JButton sourceButton = (JButton) e.getSource();
typeText = sourceButton.getText();
}
//THE il.setText() IN THESE SWITCH CASE STATEMENTS AREN'T WORKING, I ALREADY TESTED THAT THE CASE IS TRIGGERED (the line runs)
if (typeText == "Cycle Input") {
switch (il.getText()) {
case "Input: Hexadecimal":
System.out.println("the case is running") //that prints
il.setText("Input: Decimal");
case "Input: Decimal":
il.setText("Input: Binary");
case "Input: Binary":
il.setText("Input: Hexadecimal");
default:
System.out.println("Label: "+il.getText());
}
}
if (typeText == "Cycle Output") {
switch (ol.getText()) {
case "Output: Hexadecimal":
ol.setText("Output: Decimal");
case "Output: Decimal":
ol.setText("Output: Binary");
case "Output: Binary":
ol.setText("Output: Hexadecimal");
default:
System.out.println("Label: "+ol.getText());
}
}
}
public ButtonPress(JLabel inputLabel, JLabel outputLabel) {
il = inputLabel;
ol = outputLabel;
}
}
< /code>
Итак, чтобы резюме, почему эти label.settext () не работают? Когда я запускаю его, нет ошибок. Я также позаботился о том, чтобы все было определено и инициализировано в методе, и все это так. Это действительно странная проблема, и я не смог найти что -либо в Интернете об изменении текста лейбла с слушателя действий другой кнопки.

Подробнее здесь: https://stackoverflow.com/questions/797 ... -a-jbutton
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как я бы изменил текст Jlabel с ActionListener, слушающий Jbutton под тем же кадром?
    Anonymous » » в форуме JAVA
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Как я бы изменил текст Jlabel с ActionListener, слушающий Jbutton под тем же кадром?
    Anonymous » » в форуме JAVA
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Как я бы изменил текст Jlabel с ActionListener, слушающий Jbutton под тем же кадром?
    Anonymous » » в форуме JAVA
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Как я бы изменил текст Jlabel с ActionListener, слушающий Jbutton под тем же кадром?
    Anonymous » » в форуме JAVA
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Почему я не могу использовать традиционный метод ActionListener для JButton для Java 17?
    Anonymous » » в форуме JAVA
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»