这里的情况如下:我有一个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的右上角?非常感谢!