无法在窗口中重新定位 JButton 对象



我一直在尝试调整按钮大小或使用setLocationsetBounds方法。不管我在参数中放了什么,按钮永远不会改变。我需要学习重新定位GUI中的按钮、标签、文本字段或任何组件。

提前感谢!

private void iniciarComponentes(){
setTitle("PARA QUE SIRVE");
setSize(1280,800);
setLocationRelativeTo(null);
setDefaultCloseOperation(HIDE_ON_CLOSE);
getRootPane().setWindowDecorationStyle(JRootPane.NONE);
setUndecorated(true);
setVisible(true);

setLayout(new BorderLayout());
JLabel background = new JLabel(new ImageIcon("C:\..."));
add(background);
background.setLayout(new FlowLayout());
JButton btnOk = new JButton("OK");
Dimension size = btnOk.getPreferredSize();
btnOk.setBounds(0,0, 10, 10);
btnOk.addActionListener(this);
background.add(btnOk);
}

您需要使用一个适当的布局管理器,一个考虑setLocationsetBounds的管理器,或者根本不使用布局管理器。

我认为SpringLayout或GroupLayout都是合适的。

或者,您可以嵌套容器并使用不同的布局管理器。在嵌套布局时,您可能还需要操作容器大小。

还要注意的是,在更改容器中组件的位置之后(在显示GUI之后(,您可能需要调用方法revalidate,然后可能调用方法repaint。

关于您问题中的代码。看起来,您发布的方法的代码来自一个扩展JFrame的类。GUI应用程序类没有必要扩展JFrame

同样来自您问题中的代码:

setLayout(new BorderLayout());

这是默认值,因此无需显式设置。

background.add(btnOk);

JButton这样的组件应该添加到像JPanel这样的容器中,而不是添加到JLabel中。您可以在JPanel上设置背景图像。

相关内容

  • 没有找到相关文章

最新更新