Я пытаюсь сделать численное преобразователь, позволяя вам преобразовать в/из HEX, десятичного и бинарного. До сих пор я работаю только над частью, которая позволяет вам выбрать входы и выходы на интерфейсе. У меня есть метка для ввода, метка для вывода и кнопку для прохождения каждых. Под велосипедом я имею в виду, что каждый раз, когда нажимается кнопка рядом с меткой, она будет проходить через возможные входы и выходы. (Hex-> Decimal-> Binary) Все код работает, за исключением части, где я пытаюсь установить текст метки из ActionListener под кнопкой цикла. Я использую label.settext (), который должен работать, но он не работает. Вот мой код. Извините, это действительно долго, я отрисовал как можно больше нерелевантных вещей. (P.S. Если код выглядит как полный новичок, это так. Я очень новый.) < /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
Как я бы изменил текст Jlabel с ActionListener, слушающий Jbutton под тем же кадром? ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как я бы изменил текст Jlabel с ActionListener, слушающий Jbutton под тем же кадром?
Anonymous » » в форуме JAVA - 0 Ответы
- 3 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как я бы изменил текст Jlabel с ActionListener, слушающий Jbutton под тем же кадром?
Anonymous » » в форуме JAVA - 0 Ответы
- 2 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как я бы изменил текст Jlabel с ActionListener, слушающий Jbutton под тем же кадром?
Anonymous » » в форуме JAVA - 0 Ответы
- 4 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Почему я не могу использовать традиционный метод ActionListener для JButton для Java 17?
Anonymous » » в форуме JAVA - 0 Ответы
- 20 Просмотры
-
Последнее сообщение Anonymous
-