【发布时间】:2012-06-09 16:25:14
【问题描述】:
如何将对象放置在 JFrame 上的特定位置 (x,y)?
【问题讨论】:
标签: java swing user-interface jframe
如何将对象放置在 JFrame 上的特定位置 (x,y)?
【问题讨论】:
标签: java swing user-interface jframe
在这里找到Absolute Positioning Tutorials。请仔细阅读,为什么不鼓励使用这种方法而不是使用 LayoutManagers
要在你的 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();
}
});
}
}
【讨论】:
JPanel 一起使用 :-) 我之前忘了告诉你,你必须写panel.setLayout(null),尽管我已经提到过现在在这个代码示例中:-)
试试这2个...结合在一起...
setLocation() 和 setBounds()
使用NetBeans团队2005年开发的GroupLayout更好。WindowsBuilder Pro是Java构建GUI的好工具
【讨论】:
GroupLayout 的一种方法。
查看这个绝对布局代码示例:
【讨论】:
在继承框架的类中:
setLayout(null);
在您的组件中:
setLocation(x,y);
【讨论】: