My Listener выполняет метод changeColor()
только один раз.
Пробовал разные версии создателей случайных цветов
Код:
// Java program to create a blank text
// field of definite number of columns.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class Main extends JFrame implements ActionListener {
// JTextField
static JTextField textField;
// JFrame
static JFrame frame;
// JButton
static JButton button;
// label to display text
static JLabel label;
static JPanel panel;
// main class
public static void main(String[] args)
{
// create a new frame to stor text field and button
frame = new JFrame("textfield");
// create a label to display text
label = new JLabel("nothing entered");
// create a new button
button = new JButton("submit");
// create a panel
panel = new JPanel();
// create an object of the text class
Main te = new Main();
// addActionListener to button
button.addActionListener(te);
// create an object of JTextField with 16 columns
textField = new JTextField(16);
// add buttons and textfield to label and then to panel
panel.add(textField);
panel.add(button);
panel.add(label);
label.setOpaque(true);
// add panel to frame
frame.add(panel);
// set the size of frame
frame.setSize(300, 300);
panel.setBackground(Color.cyan);
frame.show();
}
// if the button is pressed
@Override
public void actionPerformed(java.awt.event.ActionEvent e)
{
String s = e.getActionCommand();
if (s.equals("submit")) {
// set the text of the label to the text of the field
if(textField.getText().equals("hue")) {
panel.setBackground(changeColor());
}
label.setText(textField.getText());
// set the text of field to blank
textField.setText(" ");
}
}
public Color changeColor() {
Color randomColor = new Color((int)(Math.random() * 0x1000000));
return randomColor;
}
}
Я хочу, чтобы программа снова и снова создала новый цвет при вводе "hue" в textField для отправки с помощью кнопки.
К сожалению, это работает только один раз.