为什么我不能从Main类显示此自定义JFrame?

安德里亚·诺比利(AndreaNobili)

我在Java Swing开发中是一个新手,并且遇到以下问题

我有以下3个课程:

1)一种主要类,简单地示出了LoginFrame类:

package com.test.login4;

import javax.swing.JFrame;


public class Main {

    private static final LoginFrame loginFrame = new LoginFrame();

    //private static final GUI gui = new GUI();

    public static void main(String[] args) {
          System.out.println("Main ---> main()");   

          loginFrame.setVisible(true);


    }

}

2)然后,我有了LoginFrame类,该类简单地扩展了经典的Swing JFrame,它显示了用户可以在其中插入用户名和密码的登录表单:

package com.test.login4;

import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;



public class LoginFrame extends JFrame implements ActionListener {

    private static final int FIXED_WIDTH = 550;
    private static final Dimension INITAL_SIZE = new Dimension(FIXED_WIDTH, 230);

    private boolean loginResult = true;

    public LoginFrame() {

        System.out.println("Inside LoginFrame ---> LoginFrame()");

        this.setTitle("XCloud Login");

        this.setPreferredSize(INITAL_SIZE);
        this.setResizable(false);

        Container mainContainer = this.getContentPane(); // main Container into
                                                            // the main JFrame

        // JPanel creation and settings of the MigLayout on it:
        // JPanel externalPanel = new JPanel();
        JPanelWithBackground externalPanel = null;

        try {
            // externalPanel = new JPanelWithBackground("resources/logo.png");
            externalPanel = new JPanelWithBackground("src/com/test/resources/logo.png");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        externalPanel.setLayout(new net.miginfocom.swing.MigLayout("fill"));

        externalPanel.add(new JLabel("Username"), "w 50%, wrap");
        JTextField userNameTextField = new JTextField(20);

        externalPanel.add(userNameTextField, "w 90%, wrap");

        externalPanel.add(new JLabel("Password"), "w 50%, wrap");
        JTextField pswdTextField = new JTextField(20);
        externalPanel.add(pswdTextField, "w 90%, wrap");

        JButton loginButton = new JButton("Login");
        loginButton.setActionCommand("loginAction");
        loginButton.addActionListener(this);

        externalPanel.add(loginButton, "w 25%, wrap");

        mainContainer.add(externalPanel);
        // mainFrame.add(mainContainer);
        // loginFrame.setVisible(true);
        this.setVisible(true);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub

    }

}

3)此类使用JPanelWithBackground对象具有背景图像

package com.test.login4;

import java.awt.Graphics;
import java.awt.Image;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JPanel;

public class JPanelWithBackground extends JPanel {

      private Image backgroundImage;

      // Some code to initialize the background image.
      // Here, we use the constructor to load the image. This
      // can vary depending on the use case of the panel.
      public JPanelWithBackground(String fileName) throws IOException {
        backgroundImage = ImageIO.read(new File(fileName));
      }

      public void paintComponent(Graphics g) {
        super.paintComponent(g);

        // Draw the background image.
        //g.drawImage(backgroundImage, 0, 0, this);
        g.drawImage(backgroundImage, 0, 0, 550, 230, this);
      }
    }

我的问题是,当我执行Main类时,它向我显示Java应用程序的图标(在Ubuntu栏上),但无法显示LoginFrame窗口。

为什么?我想念什么?

我尝试创建并显示一个经典的JFrame而不是我的LoginFrame(在Main类中),并且我没有问题。

Masudul

该方法this.setPreferredSize(INITAL_SIZE);未达到您的期望。setSizeLoginFrame构造函数调用方法

  setSize(INITAL_SIZE);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我不能挽救在另一个类中定义的此自定义错误?

来自分类Dev

为什么我不能为Material-UI中禁用的元素自定义类?

来自分类Dev

为什么我的自定义HashMap类(扩展了HashMap)不能正确地用于put?

来自分类Dev

为什么不能创建自定义异常类?

来自分类Dev

为什么我不能从类外部访问 __init__ 中定义的类变量?

来自分类Dev

为什么我不能使用自定义Scala类型(Jerkson)解析此JSON字符串?

来自分类Dev

为什么我不能使用Json.Net反序列化此自定义结构?

来自分类Dev

为什么我不能从类访问脚本变量?

来自分类Dev

为什么我不能从多个类继承?

来自分类Dev

Sencha Touch-为什么在我的自定义组件中未定义此功能?

来自分类Dev

Qt - 为什么我不能在 MainWindow 中为我的自定义按钮触发 mousePressEvent

来自分类Dev

此过程将空值插入我的自定义表中-为什么?

来自分类Dev

读取此CSV文件后,为什么我的powershell自定义属性为空?

来自分类Dev

为什么我不能从我的活动中调用此服务?

来自分类Dev

为什么我的自定义对象不能由onSaveInstanceState和onRestoreInstanceState保留

来自分类Dev

为什么我的ORMLite自定义持久性程序不能在Android上运行?

来自分类Dev

为什么在设计时Invalidate()方法不能用于我的自定义按钮?

来自分类Dev

为什么我不能在Django-Oscar中自定义模板?

来自分类Dev

为什么onSaveInstanceState和onRestoreInstanceState不能保留我的自定义对象

来自分类Dev

为什么我不能访问Repeater内的UserControl自定义属性?

来自分类Dev

为什么我不能在Google搜索页面等某些网站中使用自定义字体

来自分类Dev

为什么我不能将图像分配给自定义收集CollectionViewCell

来自分类Dev

为什么忽略此自定义视图属性?

来自分类Dev

为什么此自定义身份用户上下文不能持久存在于MVC中?

来自分类Dev

为什么我不能从我用泛型创建的类中调用方法?爪哇

来自分类Dev

为什么我不能从我用泛型创建的类中调用方法?爪哇

来自分类Dev

为什么我的自定义类无法识别快速扩展?(即字符串)

来自分类Dev

自定义异常类-我们为什么需要它?

来自分类Dev

为什么我的Python自定义数学重载类方法无法正常工作?

Related 相关文章

  1. 1

    为什么我不能挽救在另一个类中定义的此自定义错误?

  2. 2

    为什么我不能为Material-UI中禁用的元素自定义类?

  3. 3

    为什么我的自定义HashMap类(扩展了HashMap)不能正确地用于put?

  4. 4

    为什么不能创建自定义异常类?

  5. 5

    为什么我不能从类外部访问 __init__ 中定义的类变量?

  6. 6

    为什么我不能使用自定义Scala类型(Jerkson)解析此JSON字符串?

  7. 7

    为什么我不能使用Json.Net反序列化此自定义结构?

  8. 8

    为什么我不能从类访问脚本变量?

  9. 9

    为什么我不能从多个类继承?

  10. 10

    Sencha Touch-为什么在我的自定义组件中未定义此功能?

  11. 11

    Qt - 为什么我不能在 MainWindow 中为我的自定义按钮触发 mousePressEvent

  12. 12

    此过程将空值插入我的自定义表中-为什么?

  13. 13

    读取此CSV文件后,为什么我的powershell自定义属性为空?

  14. 14

    为什么我不能从我的活动中调用此服务?

  15. 15

    为什么我的自定义对象不能由onSaveInstanceState和onRestoreInstanceState保留

  16. 16

    为什么我的ORMLite自定义持久性程序不能在Android上运行?

  17. 17

    为什么在设计时Invalidate()方法不能用于我的自定义按钮?

  18. 18

    为什么我不能在Django-Oscar中自定义模板?

  19. 19

    为什么onSaveInstanceState和onRestoreInstanceState不能保留我的自定义对象

  20. 20

    为什么我不能访问Repeater内的UserControl自定义属性?

  21. 21

    为什么我不能在Google搜索页面等某些网站中使用自定义字体

  22. 22

    为什么我不能将图像分配给自定义收集CollectionViewCell

  23. 23

    为什么忽略此自定义视图属性?

  24. 24

    为什么此自定义身份用户上下文不能持久存在于MVC中?

  25. 25

    为什么我不能从我用泛型创建的类中调用方法?爪哇

  26. 26

    为什么我不能从我用泛型创建的类中调用方法?爪哇

  27. 27

    为什么我的自定义类无法识别快速扩展?(即字符串)

  28. 28

    自定义异常类-我们为什么需要它?

  29. 29

    为什么我的Python自定义数学重载类方法无法正常工作?

热门标签

归档