JWindow上的JPanel,添加组件

发布于 2024-11-28 17:10:22 字数 1211 浏览 2 评论 0原文

我有一个 JFrame,在 JFrame 代码中我创建了一个 JWindow,并在窗口上创建了一个 JPanel。在 JPanel 上插入了背景图像。

JButton btnImage= new JButton("My Button");

 Image splashImg = Toolkit.getDefaultToolkit().getImage("images/image1.jpeg");
    
JPanel pnlSplashWindow= new JPanel(){ 

        public void paint(Graphics g){
          g.drawImage(splashImg,0,0,splashImg.getWidth(this),splashImg.getHeight(this),this);
    }
    };
    
    pnlSplashWindow.setLayout(new BorderLayout());
    pnlSplashWindow.add(BorderLayout.SOUTH,btnImage);
    JWindo window= new JWindow(this); // this refers to my class which has extended JFrame

    window.setContentPane(pnlSplashWindow);
    window.setSize(688, 344);
    btnImg.setVisible(true);
    window.setLocationRelativeTo(this);

我是 JWindow 的新手,有以下问题:

  1. 如何在 JWindow (或 JPanel 上的 JPanel)上添加按钮和标签等元素代码>JWindow)?
  2. 如何将我的 JFrame 设置为该 JWindow 的父级?我的意思是,当 JWindow 处于活动状态时,JFrame 不应可单击。

所需最终效果的示例

启动示例

I have a JFrame, inside the JFrame code I create a JWindow and on window I have created a JPanel. On JPanel is inserted a background image.

JButton btnImage= new JButton("My Button");

 Image splashImg = Toolkit.getDefaultToolkit().getImage("images/image1.jpeg");
    
JPanel pnlSplashWindow= new JPanel(){ 

        public void paint(Graphics g){
          g.drawImage(splashImg,0,0,splashImg.getWidth(this),splashImg.getHeight(this),this);
    }
    };
    
    pnlSplashWindow.setLayout(new BorderLayout());
    pnlSplashWindow.add(BorderLayout.SOUTH,btnImage);
    JWindo window= new JWindow(this); // this refers to my class which has extended JFrame

    window.setContentPane(pnlSplashWindow);
    window.setSize(688, 344);
    btnImg.setVisible(true);
    window.setLocationRelativeTo(this);

I am new to JWindow and have the following questions:

  1. How to add elements like buttons and labels on JWindow (or JPanel which is on the JWindow)?
  2. How to set my JFrame as the parent of this JWindow? I mean while JWindow is active, the JFrame should not be clickable.

An example of the desired end effect

Example of splash

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

清风夜微凉 2024-12-05 17:10:22

要添加组件,您应该使用:

pnlSplashWindow.add(btnImage, BorderLayout.SOUTH);

代替。如果您不希望 JFrame 可点击,则应使用 modal JDialog ,通过扩展 JDialog 而不是 JWindow

但如果您想创建启动屏幕,您应该阅读如何创建启动屏幕启动画面

To add components you should use:

pnlSplashWindow.add(btnImage, BorderLayout.SOUTH);

instead. And if you don't want your JFrame to be clickable, you should use a modal JDialog , by extending JDialog instead of JWindow.

But if you want to create a Splash Screen, you should read How to create a Splash Screen.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文