java swing 按钮位置_Java Swing按钮定位

这里的情况如下:我有一个JFrame,我存储了一个图像列表 . 按下右键时,我会在此全屏JFrame中显示下一个图像 . 我想在屏幕的右上角有一个退出JButton,这就是问题所在 . 为此,我每次更改图像时都会创建一个新的JPanel,从框架中删除旧的JPanel,并将JButton添加到新的JPanel中 . 问题如下:当我启动程序时,JButton位于JFrame的中间 . 一旦我按下右键加载下一个图像,JButton就在正确的位置 . 但是,调用方法显示下一个图像的变通方法失败 . 即使我将JButton设置为不可见,直到按下右键并加载第二个图像,它仍将位于屏幕的中心而不是右上角 . 使用以下代码:

BufferedImage image = ImageIO.read(images.get(number));

JPanel panel = new JPanel() {

@Override

protected void paintComponent(Graphics g) {

super.paintComponent(g);

g.drawImage(image, 0, 0, null);

}

};

if (currentPanel != null) {

this.remove(currentPanel);

}

panel.setSize(Gallery.this.getSize());

currentPanel = this.add(panel);

jButton1.setBounds(Gallery.this.getWidth() - jButton1.getWidth(), 0, jButton1.getWidth(), jButton1.getHeight());

panel.add(jButton1);

currentPanel.repaint();

此代码在启动时执行一次 . 那时JButton就在中间 . 加载下一个图像时再次执行,现在JButton处于正确的位置 .

我已经尝试了很多东西,比如将JButton添加到JFrame,将JPanels布局设置为null(使按钮不可见),重绘,打包,无效,我尝试的任何东西似乎都无效 . 是否有人能够指示Swing将JButton放在我的JFrame的右上角?非常感谢!

这里的情况如下:我有一个JFrame,我存储了一个图像列表 . 按下右键时,我会在此全屏JFrame中显示下一个图像 . 我想在屏幕的右上角有一个退出JButton,这就是问题所在 . 为此,我每次更改图像时都会创建一个新的JPanel,从框架中删除旧的JPanel,并将JButton添加到新的JPanel中 . 问题如下:当我启动程序时,JButton位于JFrame的中间 . 一旦我按下右键加载下一个图像,JButton就在正确的位置 . 但是,调用方法显示下一个图像的变通方法失败 . 即使我将JButton设置为不可见,直到按下右键并加载第二个图像,它仍将位于屏幕的中心而不是右上角 . 使用以下代码: BufferedImage image = ImageIO.read(images.get(number)); JPanel panel = new JPanel() { @Override protected void paintComponent(Graphics g) { super.paintComponent(g); g.drawImage(image, 0, 0, null); } }; if (currentPanel != null) { this.remove(currentPanel); } panel.setSize(Gallery.this.getSize()); currentPanel = this.add(panel); jButton1.setBounds(Gallery.this.getWidth() - jButton1.getWidth(), 0, jButton1.getWidth(), jButton1.getHeight()); panel.add(jButton1); currentPanel.repaint(); 此代码在启动时执行一次 . 那时JButton就在中间 . 加载下一个图像时再次执行,现在JButton处于正确的位置 . 我已经尝试了很多东西,比如将JButton添加到JFrame,将JPanels布局设置为null(使按钮不可见),重绘,打包,无效,我尝试的任何东西似乎都无效 . 是否有人能够指示Swing将JButton放在我的JFrame的右上角?非常感谢!
经验分享 程序员 微信小程序 职场和发展