Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用JOptionPane从现有的文本菜单制作GUI?_Java_Eclipse_User Interface_Joptionpane - Fatal编程技术网

Java 如何使用JOptionPane从现有的文本菜单制作GUI?

Java 如何使用JOptionPane从现有的文本菜单制作GUI?,java,eclipse,user-interface,joptionpane,Java,Eclipse,User Interface,Joptionpane,我创建了一个类,该类具有获取、设置和显示计算机详细信息的方法。然后,我创建了一个测试类,该类显示此方法,并使用文本菜单供用户交互(如下所示)。我现在需要使用JOptionPane将其升级到GUI界面,但我不知道从何处开始,因为这对我来说是全新的。如果任何人有任何意见或建议,将不胜感激 import java.util.Scanner; public class SystemTest_Y3881268 { public static void main(String[] args) {

我创建了一个类,该类具有获取、设置和显示计算机详细信息的方法。然后,我创建了一个测试类,该类显示此方法,并使用文本菜单供用户交互(如下所示)。我现在需要使用JOptionPane将其升级到GUI界面,但我不知道从何处开始,因为这对我来说是全新的。如果任何人有任何意见或建议,将不胜感激

import java.util.Scanner;

public class SystemTest_Y3881268 {

    public static void main(String[] args) {
        //Create System_Y3881268 object and test methods
        System_Y3881268 s=new System_Y3881268("Lenovo", 
            "Ideacentre A340-24IWL", 2);
        s.setHardDisk(2);
        s.setMemory(128);
        s.setPurchaseCost(599);

        //Create textual menu
        int memorySize;
        double hardDiskSize;

        @SuppressWarnings("resource")
        Scanner keyboard = new Scanner(System.in);
        char choice;
        do 
        {
            System.out.println();
            System.out.println("***** Computer system menu *****");
            System.out.println();
            System.out.println("Choice 1: Print System Details");
            System.out.println("Choice 2: Diagnose System");
            System.out.println("Choice 3: Set Details");
            System.out.println("Choice 4: Print System Properties");
            System.out.println("Choice 5: Quit the Program");
            System.out.println();
            System.out.println("Enter a number from 1 - 5");
            System.out.println();
            choice = keyboard.next().charAt(0);

            switch(choice) 
            {

            case '1': 
            {
                s.displayDetails();
            }
            break;

            case '2': 
            {
                s.diagnoseSystem();
            } 
            break;

            case '3': 
            {
                System.out.println("Enter hard disk size in GB: ");
                hardDiskSize = keyboard.nextDouble();
                if(hardDiskSize<2) 
                {
                    System.out.println("Hard disk size = Low");
                }

                else 
                {
                    System.out.println("Hard disk size = Ok");
                }

                System.out.println();
                System.out.println("Enter memory size in MB: ");
                memorySize = keyboard.nextInt();
                if(memorySize<128) 
                {
                    System.out.println("Memory Ok = False");
                }

                else 
                {
                    System.out.println("Memory Ok = True");
                }

            }
            break;

            case '4' : 
            {
                System_Y3881268.displaySystemProperties();
            }
            break;

            case '5' : break;
            default :  System.out.println("Enter only numbers from 1 - 5");
                   System.out.println();
            }
        } while(choice != '5');
    }
}
import java.util.Scanner;
公共类系统测试_Y3881268{
公共静态void main(字符串[]args){
//创建系统_Y3881268对象和测试方法
System_Y3881268 s=新系统_Y3881268(“联想”,
“Ideacentre A340-24IWL”,2);
s、 设置硬盘(2);
s、 设置存储器(128);
s、 设置采购成本(599);
//创建文本菜单
记忆化;
双硬盘大小;
@抑制警告(“资源”)
扫描仪键盘=新扫描仪(System.in);
字符选择;
做
{
System.out.println();
System.out.println(“****计算机系统菜单*******”);
System.out.println();
System.out.println(“选项1:打印系统详细信息”);
System.out.println(“选项2:诊断系统”);
System.out.println(“选项3:设置详细信息”);
System.out.println(“选项4:打印系统属性”);
System.out.println(“选择5:退出程序”);
System.out.println();
System.out.println(“输入1-5之间的数字”);
System.out.println();
choice=键盘.next().charAt(0);
开关(选择)
{
案例“1”:
{
s、 显示详细信息();
}
打破
案例“2”:
{
s、 诊断系统();
} 
打破
案例“3”:
{
System.out.println(“以GB为单位输入硬盘大小:”;
硬盘大小=键盘.nextDouble();

如果(硬盘大小您可以使用这行代码:

JOptionPane.showMessageDialog(f,"Message", "Title", JOptionPane.WARNING_MESSAGE); 
如果
f
是父
JFrame
,则它可以是
null
JOptionPane。警告消息是对话框的类型


有关更多信息,如果您想比JOptionPane更具灵活性,请参阅。我建议您使用JDialog类。您可以在对话框的构造函数中添加组件,如JTextbox、JLabel、JButton等。
首先,创建一个扩展JDialog的类

public class Whatever extends JDialog
{
    public Whatever(Frame ownerFrame)
    {
        super(ownerFrame, "Title", true);
        this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        this.rootPane.setBorder(new LineBorder(new Color(125, 0, 0), 3, true));
    }
}
然后在你的主课上你会这样称呼它:

Whatever whatev = new Whatever(myFrame);
whatev.setSize(800, 600);
whatev.setVisible(true);

有关JDialog类的更多信息:

这离正确回答实际问题还有几英里之遥……基本上,你可以从拿起一本好书开始,或者从阅读教程开始,就像这里的教程:……意思是:你的问题基本上太宽了。你会:“好吧,我知道如何使用滑板车,现在有人能用一两句话告诉我如何骑自行车吗?”有趣的是,ppl只是无缘无故地投了反对票,这样没有人知道他们的错误是什么,也无法纠正。