当前位置: 首页 > 知识库问答 >
问题:

在java中使用swing GUI

韩羽
2023-03-14
GUI welcome = new GUI();

//waiting for the click
while(!welcome.isClicked()) {
    
}
UserInfoGUI login = new UserInfoGUI();

欢迎桂:

public class GUI implements ActionListener{
    
    JFrame frame;
    JPanel panel;
    JButton button;
    JLabel label;
    static boolean clicked = false;
    
    public GUI() {
        frame = new JFrame();
        frame.setSize(450, 450);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        //creating instance of panel
        panel = new JPanel();
        panel.setLayout(null);
        frame.add(panel);
        
        //Starting with user name label and the text field
        label = new JLabel();
        label.setBounds(15, 70, 600, 25);
        panel.add(label); 
        
        //Adding the button next
        button = new JButton("Next");
        button.setBounds(165, 100, 60, 20);
        panel.add(button);
        button.addActionListener(this);
        
        frame.setVisible(true);
    }
    
    public static boolean isClicked() {
        return clicked;
    }


    public static void setClicked(boolean click) {
        clicked = click;
    }


    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub
        setClicked(true);
        frame.setVisible(false); // Hide current frame
        
        
    }

登录GUI与上面的GUI类似,具有frame.setVisible(true);

共有1个答案

毛缪文
2023-03-14

1-我有一个代码,它基本上是一个带有name和number属性的user类,我计划将其用作登录页面,所以我所做的是为这个user类创建一个与user类完全分开的新GUI类(就像在一个类中为函数创建一个类,而在另一个类中为GUI创建一个),这是错误的吗?我应该将用户方法和GUI放在一个类中吗?

UI开发中的一个常见概念是“模型-视图-控制器”(暂时不要担心控制器)。这意味着您的“数据”是以某种方式建模的(即user),您的“视图”(UI)接受该模型,并决定如何将模型呈现给用户。它还有助于管理用户与模型之间的交互。

所以,是的,保持您的“数据”独立于您的“UI”是正确的策略。永远记住,确定数据“如何”格式化是UI的责任,模型只是以某种有意义的方式管理数据的一种手段。

这将使您进入“观察者模式”(也称为侦听器),在该模式中,当某个状态发生变化时,兴趣方会注册对已通知的兴趣。

在设计这类系统时,要经常问自己一些基本问题

  • 我需要向程序的其他部分公开多少?ie欢迎您视图不需要了解登录视图,因为它可以对登录视图执行超出其职责范围的操作
  • 我需要做多大的努力或多大的工作来改变它的任何部分?!所以你得到了欢迎屏幕打开登录屏幕,但现在你想添加“自动登录”,只是你要去多少工作,使其工作?如果welcome视图和login视图相互独立并通过其他机制进行控制,是否会更容易?
 类似资料:
  • 问题内容: 我有一个使用100%Java编写的大型现有代码库,但是我想在它的一些新部分中使用Python。我需要进行一些文本和语言处理,而我宁愿使用Python和类似NLTK的库来执行此操作。 我知道Jython项目,但这似乎代表了一种从Python内部使用Java及其库的方法,而不是相反的方式-我对此是否错? 如果没有,那么在Java和Python之间进行交互的最佳方法是什么,这样(理想情况下)

  • 问题内容: 这可能是一个新手问题,但希望您能帮助我。:)我有这样的事情: 我使用的是NetBeans IDE,由于某种原因,在弯曲的行中加了下划线的是printStackTrace。当我按Alt + Enter时,提示应删除Throwable.printStackTrace()。这是什么意思?谁能提供更多的见解,这可能意味着什么?还是我可以忽略这个? 谢谢! 问题答案: 这只是一个建议。在ecli

  • 问题内容: 在很多情况下,我不仅需要正弦,而且需要相同参数的余弦。 对于C,通用unix 数学库中有该函数。实际上,至少在i386上,这应该是一条汇编指令。 sincos,sincosf,sincosl-同时计算sin和cos 我猜这些好处存在是因为在计算正弦和余弦时存在明显的重叠:。但是AFAIK尝试将其快捷方式化为并没有用,因为该功能的费用与此相似。 有什么方法可以在Java中获得相同的好处吗

  • 问题内容: 您必须使用Java做什么才能获得Runtime.exec()来运行路径上的程序?我正在尝试运行已放入路径(/ usr / local / bin)的gpsbabel。 问题答案: 它将从Java进程继承路径。因此,无论Java进程具有什么环境,生成的进程也都将具有。检查环境的方法如下: 您设置了 并 导出了吗?如果不导出,则子进程将无法使用它。 此外,您 必须同时 使用stdout和s

  • 问题内容: 请提供一些有关如何在Google Guice或Java EE中使用的基本信息,如果使用简单的代码进行解释将非常有帮助,在此先感谢您 问题答案: 的目的在吉斯是允许你绑定类和实例以通用类型(与指定类型的参数)避免从一个事实,即泛型未用Java物化,即,从这样的事实而产生的问题,即擦除皮之间的差和在运行。通过创建泛型类型的 临时 子类,允许泛型参数的值在擦除后幸存下来。 示例用法: 这会将

  • 我有一个关于注释在Java中的用法的问题。 根据我所读到的内容,设置可能返回空值的方法是一个很好的实践。这样,如果使用,IDE可以帮助检测一些空指针异常错误,或者建议删除不必要的空指针异常检查。 到目前为止还不错,但是对于方法参数使用怎么样?这是一个好的实践吗?还是代码会变得更加冗长(如果与一起使用),而且可能会失去好处,因为您并不总是知道将向函数调用传递什么参数?另外,您对在setter方法中使

  • 我在java中使用Arraylists时遇到了问题,我的代码如下所示: 我将相同的数字添加到列表中,但是当我试图像这样比较列表中索引0的数字时,布尔值的结果是false,而它应该是true: 为false 但是当我使用一些临时变量,然后比较它们时,它给出了我所期望的,在bcompare上的真实值: 为true 我在这里做错了什么?