我试图创建一个随机生成名称的名称生成器。 现在,当我单击按钮时,它会生成一个名称,但它会显示在Eclipse控制台中,而不是与按钮位于同一窗口中,这就是我想要它做的。 最后,我希望能够为按钮和背景(窗口/框架)设置特定的图片。另外,作为奖励我希望能够添加一些音乐,一旦你打开应用程序就可以在后台播放。 现在,我对java很新,而且我只看过几本教程,但它让我走到了这一步,希望我能从你们其中一个人那里学到一两件事。 所以请善待,最好的问候leal。
import javax.swing.*;
import javax.swing.JFrame;
import java.awt.*;
import java.awt.event.*;
public class ClanNameGenerator {
public static void main (String[] args){
JFrame frame = new JFrame("ExETesT");
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400,350);
JPanel panel = new JPanel ();
frame.add(panel);
JButton button = new JButton("Click me");
panel.add(button);
button.addActionListener(new Action());
}
static class Action implements ActionListener{
public void actionPerformed (ActionEvent e){
String[] names = {"test", "Zero", "Club", "Moonkys", "znakes", "SeamOnster", "dnktwhm", "Rambo", "OmG", "siste"};
String[] names2 = {"Ylos", "zzzzz", "sdsd", "OK"};
String[] names3 = {"Hei", "ok", "jadd", "så drar vi", "det var det"};
int random = (int) (Math.random()*names.length);
int random2 = (int) (Math.random()*names2.length);
int random3 = (int) (Math.random()*names3.length);
System.out.println("Your clan name is: " + names[random] +" "+ names2[random2] +" "+ names3[random3]);
}
}
}
答案 0 :(得分:1)
如果您执行此类操作,名称将显示在JFrame中:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class ClanNameGenerator {
private static JLabel label;
public static void main (String[] args){
JFrame frame = new JFrame("ExETesT");
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400,350);
JPanel panel = new JPanel ();
frame.add(panel);
JButton button = new JButton("Click me");
panel.add(button);
label = new JLabel();
panel.add(label);
button.addActionListener(new Action());
}
static class Action implements ActionListener{
public void actionPerformed (ActionEvent e){
String[] names = {"test", "Zero", "Club", "Moonkys", "znakes", "SeamOnster", "dnktwhm", "Rambo", "OmG", "siste"};
String[] names2 = {"Ylos", "zzzzz", "sdsd", "OK"};
String[] names3 = {"Hei", "ok", "jadd", "så drar vi", "det var det"};
int random = (int) (Math.random()*names.length);
int random2 = (int) (Math.random()*names2.length);
int random3 = (int) (Math.random()*names3.length);
label.setText("Your clan name is: " + names[random] +" "+ names2[random2] +" "+ names3[random3]);
}
}
}
答案 1 :(得分:0)
如果你没有问任何问题,你的问题会发生很多。至于你的文本问题,System.out.println();将始终打印到控制台,无论它在哪里。要将其添加到JFrame,您有多种选择。您可能想要的是使用JLabel,除非您有大量文本,在这种情况下JTextArea可能更适合,或者如果您打算做一些比普通文本更有趣的东西,您可能想要直接使用它Graphics类和drawString(String)。
至于你的其他部分......"问题,"在堆栈上寻求帮助之前做一些研究和尝试。这个社区用于在事情不起作用时为您提供帮助,而不是为您编写项目。
答案 2 :(得分:0)
将JLabel添加到UI,然后调用该JLabel对象的setText方法。
jLabelObject.setText("Your clan name is: " +
names[random] +" "+ names2[random2] +" "+ names3[random3);