如何将一个对象放置在JFrame上的特定位置(x,y)?
如何将一个对象放置在JFrame上的特定位置(x,y)?
在这里找到绝对定位教程。 请仔细阅读,了解为什么这种方法比使用布局管理器更不被鼓励。
如果要向JPanel添加一个JButton,可以使用以下代码:
JButton button = new JButton("Click Me");
button.setBounds(5, 5, 50, 30);
panel.add(button);
这里有一个示例程序,请尝试:
import java.awt.*;
import javax.swing.*;
public class AbsoluteLayoutExample
{
private void displayGUI()
{
JFrame frame = new JFrame("Absolute Layout Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel contentPane = new JPanel();
contentPane.setOpaque(true);
contentPane.setBackground(Color.WHITE);
contentPane.setLayout(null);
JLabel label = new JLabel(
"This JPanel uses Absolute Positioning"
, JLabel.CENTER);
label.setSize(300, 30);
label.setLocation(5, 5);
JButton button = new JButton("USELESS");
button.setSize(100, 30);
button.setLocation(95, 45);
contentPane.add(label);
contentPane.add(button);
frame.setContentPane(contentPane);
frame.setSize(310, 125);
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
public static void main(String... args)
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
new AbsoluteLayoutExample().displayGUI();
}
});
}
}
尝试将这两种方法组合使用:setLocation()
和setBounds()
更好的方法是使用由NetBeans团队在2005年开发的GroupLayout。WindowsBuilder Pro是一个很好的Java GUI构建工具。
GroupLayout
的一种方式。 - trashgodsetLayout(null);
setLocation(x,y);
JPanel
一起使用 :-) 我之前忘记告诉你,你需要写panel.setLayout(null)
,虽然我现在在这个代码示例中提到了它 :-) - nIcE cOwsetSize(width, height)
和setLocation(x, y)
将组件放置在指定的坐标上。所以我相应地编辑了我的答案 :-) - nIcE cOw