java的布局问题

zr_dixuexiongying 2008-01-12 05:13:24
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import java.awt.FlowLayout;

public class MyClass extends JFrame
{

private JPanel panel = new JPanel();


public MyClass()
{
setTitle("测试");
panel.add(new JButton("1"));
panel.add(new JButton("221"));
panel.add(new JButton("3"));
add(panel,BorderLayout.SOUTH);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(new FlowLayout());
setResizable(false);


setSize(400,300);
setVisible(true);
}

public static void main(String[] args)
{
JFrame.setDefaultLookAndFeelDecorated(true);
new MyClass();
}
}

上面这段程序的效果应该是按钮将沿窗体的底部从左至右排列啊!可是怎么得不到想要的结果啊?结果还是沿窗体的顶部从左至右排列.难道两个布局合在一起不起作用吗?
...全文
68 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dracularking 2008-01-12
  • 打赏
  • 举报
回复
一楼代码就等价于这样吧

add(panel);
setLayout(new FlowLayout());

layout被重置了
zr_dixuexiongying 2008-01-12
  • 打赏
  • 举报
回复
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import java.awt.FlowLayout;

public class MyClass extends JFrame
{

private JPanel panel = new JPanel();


public MyClass()
{
setTitle("测试");
setLayout(new BorderLayout());
panel.add(new JButton("1"));
panel.add(new JButton("221"));
panel.add(new JButton("3"));
add(panel,BorderLayout.SOUTH);
setDefaultCloseOperation(EXIT_ON_CLOSE);

setResizable(false);


setSize(400,300);
setVisible(true);
}

public static void main(String[] args)
{
JFrame.setDefaultLookAndFeelDecorated(true);
new MyClass();
}
}

这样就可以了,可是我想不通的是为什么FlowLayout布局不起作用
zr_dixuexiongying 2008-01-12
  • 打赏
  • 举报
回复
楼上的几位错了,你那样设置了也只是把FlowLayout布局的位置往左靠,并没有解决BorderLayout布局的问题啊,我现在关键是还要得到一个BorderLayout布局的设置效果.我就是要两个布局加在一起使用啊
hahe7788 2008-01-12
  • 打赏
  • 举报
回复
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import java.awt.FlowLayout;

public class MyClass extends JFrame
{

private JPanel panel = new JPanel();


public MyClass()
{
setTitle("测试");
panel.add(new JButton("1"));
panel.add(new JButton("221"));
panel.add(new JButton("3"));
add(panel,BorderLayout.SOUTH);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(new FlowLayout(FlowLayout.LEFT)); //需要在这里设置一下就可以了
setResizable(false);


setSize(400,300);
setVisible(true);
}

public static void main(String[] args)
{
JFrame.setDefaultLookAndFeelDecorated(true);
new MyClass();
}
}
hahe7788 2008-01-12
  • 打赏
  • 举报
回复
按有几个群,你不妨加进去,可以和大家一起讨论啊.........46986340,28039577,4804620
在那里看看有无能回答你的,谢谢,LZ,甭忘了给俺分哦,谢谢LZ
free160 2008-01-12
  • 打赏
  • 举报
回复
import   javax.swing.JFrame; 
import javax.swing.JButton;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import java.awt.FlowLayout;

public class MyClass extends JFrame
{

private JPanel panel = new JPanel();


public MyClass()
{
setTitle("测试");
panel.add(new JButton("1"));
panel.add(new JButton("221"));
panel.add(new JButton("3"));
add(panel,BorderLayout.SOUTH);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(new FlowLayout(FlowLayout.LEFT)); //需要在这里设置一下就可以了
setResizable(false);


setSize(400,300);
setVisible(true);
}

public static void main(String[] args)
{
JFrame.setDefaultLookAndFeelDecorated(true);
new MyClass();
}
}

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧