随机名称生成器(内部框架)

时间:2014-08-13 20:49:56

标签: java random frame generator

我试图创建一个随机生成名称的名称生成器。 现在,当我单击按钮时,它会生成一个名称,但它会显示在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]);


        }
    }
}

3 个答案:

答案 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)。

How to add text to JFrame?

至于你的其他部分......"问题,"在堆栈上寻求帮助之前做一些研究和尝试。这个社区用于在事情不起作用时为您提供帮助,而不是为您编写项目。

答案 2 :(得分:0)

将JLabel添加到UI,然后调用该JLabel对象的setText方法。

jLabelObject.setText("Your clan name is: "  + 
    names[random] +" "+ names2[random2] +" "+ names3[random3);