本文介绍了BorderLayout的,不可能设置了手动位置 - Java的SWING的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个问题,我实现了一个BorderLayout的JPanel的。如果我试图移动按钮,在北段为例,它会留在默认位置。
这里是我的code:
公共类窗口扩展的JFrame {
面板泛=新面板();
集装箱的JPanel,北,南,西,
公共JButton的IP,打印,取消,启动,OK;
JTextArea的时间步长;
JLabel的传奇;
双倍时间;
双温= 0.0;公共静态无效的主要(字串[] args){
新窗户();}公共窗口()
{
的System.out.println(猪乙脑LA);
this.setSize(700400);
this.setLocationRelativeTo(NULL);
this.setResizable(真);
this.setTitle(Assignment2 - CPU温度);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 集装箱=新JPanel(新的BorderLayout());
北=新JPanel();
IP =的新的JButton(新);
ip.set preferredSize(新尺寸(100,50));
ip.setLocation(0,0);
north.add(IP);
打印=的新的JButton(打印);
north.add(打印); north.add(新的JLabel(时间步长(在S):));
时间步长=新的JTextArea(10,1,5);
north.add(时间步);
开始=新的JButton(OK);
ListenForButton lForButton =新ListenForButton();
start.addActionListener(lForButton);
north.add(开始);
南=新JPanel();
传说=新的JLabel(传奇在这里);
south.add(传奇); 西=新JPanel();
JLabel的临时=新的JLabel(°C);
west.add(临时); container.add(北,BorderLayout.NORTH);
container.add(西BorderLayout.WEST);
container.add(锅,BorderLayout.CENTER);
container.add(南,BorderLayout.SOUTH); this.setContentPane(容器);
this.setVisible(真);
}
我要为我的例如新建按钮,以书面形式向被我的窗口左上角ip.setLocation(0,0);
和它保持在默认情况下该中心..
任何想法?
解决方案
的
Solution
north = new JPanel();
north.setLayout(new BorderLayout());
ip = new JButton ("New");
ip.setPreferredSize(new Dimension(100,50));
print = new JButton ("Print");
north.add(ip, BorderLayout.WEST);
JPanel centerPanel = new JPanel();
centerPanel.add(print);
centerPanel.add(new JLabel("Time Step (in s): "));
timeStep = new JTextArea("10",1,5);
centerPanel.add(timeStep);
start = new JButton("OK");
centerPanel.add(start);
north.add(centerPanel, BorderLayout.CENTER);
The north panel is now composed of the following two parts :
ip
(JButton
) and centerPanel
(JPanel
) containing the rest of the components.
Output
这篇关于BorderLayout的,不可能设置了手动位置 - Java的SWING的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!