我一直在尝试调整按钮大小或使用setLocation
和setBounds
方法。不管我在参数中放了什么,按钮永远不会改变。我需要学习重新定位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);
}
您需要使用一个适当的布局管理器,一个考虑setLocation
和setBounds
的管理器,或者根本不使用布局管理器。
我认为SpringLayout或GroupLayout都是合适的。
或者,您可以嵌套容器并使用不同的布局管理器。在嵌套布局时,您可能还需要操作容器大小。
还要注意的是,在更改容器中组件的位置之后(在显示GUI之后(,您可能需要调用方法revalidate,然后可能调用方法repaint。
关于您问题中的代码。看起来,您发布的方法的代码来自一个扩展JFrame的类。GUI应用程序类没有必要扩展JFrame
。
同样来自您问题中的代码:
setLayout(new BorderLayout());
这是默认值,因此无需显式设置。
background.add(btnOk);
像JButton
这样的组件应该添加到像JPanel
这样的容器中,而不是添加到JLabel
中。您可以在JPanel
上设置背景图像。