Java 按下GUI按钮,从数组中选择一个随机单词并将其放置在JLabel上
我对这个GUI代码有一个问题。如何在Java 按下GUI按钮,从数组中选择一个随机单词并将其放置在JLabel上,java,swing,Java,Swing,我对这个GUI代码有一个问题。如何在JLabel随机词上显示 基本上,该程序的目的是创建一个GUI按钮,单击该按钮时,从数组中选择一个随机单词,并将其放入JLabel 我遇到的问题是让单词出现在JLabel上,我不太确定该怎么做 import java.awt.Color; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java
JLabel
随机词上显示
基本上,该程序的目的是创建一个GUI按钮,单击该按钮时,从数组中选择一个随机单词,并将其放入JLabel
我遇到的问题是让单词出现在JLabel
上,我不太确定该怎么做
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class GuiQuiz {
public static void main(String[] args) {
JFrame frame = new JFrame("Button Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel mainPanel = new JPanel();
mainPanel.setBackground(Color.BLUE);
mainPanel.setPreferredSize(new Dimension(500, 500));
JPanel subPanel1 = new JPanel();
subPanel1.setBackground(new Color(134, 179, 0));
subPanel1.setPreferredSize(new Dimension(150, 100));
subPanel1.add(new JLabel("Random word here"));
String[] names = { "Class", "Charger", "Pencil", "Dog", "Robot", "Ninja", "Teacher", "Video", "Book",
"Computer" };
JButton button = new JButton("Generates a random word");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String name = names[(int) (Math.random() * names.length)];
((JButton) e.getSource()).setText(name);
}
});
mainPanel.add(button);
mainPanel.add(subPanel1);
frame.getContentPane().add(mainPanel);
frame.pack();
frame.setVisible(true);
}
}
JLabel
:
subPanel1.add(new JLabel("Random word here"));
您需要将其设置为变量:
JLabel label = new JLabel("Random word here");
subPanel1.add(label);
按钮
和自己的操作侦听器
:
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String name = names[(int) (Math.random() * names.length)];
((JButton) e.getSource()).setText(name);
}
});
您正在设置JButton
的文本,而不是标签,因此我们需要将其更改为:
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String name = names[(int) (Math.random() * names.length)];
label.setText(name);
}
});
其他提示:
- 不要调用
,而是重写setPreferredSize()
方法:getPreferredSize()
@
),如果答案解决了您的问题,请确保@Luis