如何将FlowLayout布局添加到BorderLayout 的SOUTH?

hcwsdiy 2009-04-22 09:27:46
import java.awt.*;
public class ch16
{
public static void main(String args[])
{
Frame f=new Frame("单选按钮");
CheckboxGroup cg=new CheckboxGroup();

Checkbox C3=new Checkbox("124");
Checkbox C4=new Checkbox("汉堡",cg,false);
Checkbox C5=new Checkbox("薯条",cg,false);
Checkbox C6=new Checkbox("可乐",cg,false);
Checkbox C7=new Checkbox("小不丁",cg,false);

f.setLayout(new FlowLayout());
f.setBounds(250,350,250,100);
f.add(C4);
f.add(C5);
f.add(C6);
f.add(C7);
f.setVisible(true);



Frame f2=new Frame("使用单选按钮组件");

f2.setBounds(250,350,250,100);


f2.add(f,BorderLayout.SOUTH);
f2.add(C3,BorderLayout.CENTER);
f2.add(C6,BorderLayout.SOUTH);
f2.add(C7,BorderLayout.WEST);

f2.setVisible(true);
}
}
麻烦修改一下代码!!!
谢谢!!!
...全文
115 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hkp2008 2009-04-23
  • 打赏
  • 举报
回复
Frame f=new Frame("单选按钮");
Panel f=new Panel();
zg430twk1418 2009-04-22
  • 打赏
  • 举报
回复
新建一个Panel
把这个Panel的布局设为FlowLayout();
在BorderLayout布局的南边添加这个Panel
jidushanbojue 2009-04-22
  • 打赏
  • 举报
回复
顶一楼
  • 打赏
  • 举报
回复
不能在窗体中添加窗体,可以把f改成Panel(面板)类型,这样就可以在f2中添加f
这是2011年达内刘苍松老师讲解的第一小项目,给需要的朋友,资料都是内部的!我q963780015,欢迎IT朋友加我,令出售各种达内c java安卓,传智播客视频教程等等! Swing 1 历史 1.1 SUN Jdk1.1 AWT, 控件很少, 不方便应用开发 1.2 Java 1.2 Swing 基于Awt的绘图功能重绘的界面组件 提供了极其丰富的控件. a 性能慢, b 结构优秀(MVC) c 实际应用很少, 1.3 IBM 提供了SWT, eclipse.org a 采用了本地的C代码完成控件绘制, 性能很好, Eclipse b 实际应用不多 Swing 应用 1 JFrame 代表一个窗口控件 包括标题栏, 控制按钮, 和边框, 中间是内容面板 2 JLable 用来在GUI上显示Text 或者 图片的 3 面板(JPanel): 用来组织控件的矩形区域. 关于布局管理, 布局就是控制组件在面板中的显示位置. 1 空布局 (绝对位置布局) JFrame (w:574, H:390) |-- JPanel (W:568, H:357) |-- JButton OK (x:369 ,y:327 , w:92 ,H:21 ) |-- JButton Cancel (x:466 ,y:327 , w:92 ,H:21 ) 2 布局管理器(相对位置布局, 组件的大小和位置有布局控制) A BorderLayout (边框布局) 将一个面板,分为东南西北中,每个位置只能放一个控件 中会自动的向其他的四个方法填充 ---------------------------- | 北(North) | |--------------------------| | | | | | | 中 | | | 西 | Center | 东 | | | | | |--------------------------| | 南(South) | ---------------------------- B FlowLayout (流布局) 多个元素顺序排序, 一行满了, 排下一行 ---------------------------- | [OK][OK][OK][OK][OK][OK] | | [OK][OK][OK] | | | ---------------------------- C GridLayout 表格布局, 指定行数,列数. 元素按照等宽的行列表格进行布局. 工厂方法: 封装复杂的对象创建过程,的方法. 登录界面(LoginFrame) 1 创建类LoginFrame 继承于 JFrame, 登录窗口是一 种具体的窗口 1 提供构造器 构造器中调用 init()方法 2 init() 方法用来初始化全部界面组件, 就是画界面的 3 添加showView() 用来显示界面 4 提供LoginFrameTest 用来为LoginFrame 进行单元测试 2 完成界面初始化代码 1 方法createContentPane() 用来初始化内容面板 2 方法createBtnPane() 初始化按钮面板 3 方法createNamePwdPane() 用来初始化输入框 菜单界面(MenuFrame) 3 创建类MenuFrame 继承于 JFrame 1 提供构造器 构造器中调用 init()方法 2 init() 方法用来初始化全部界面组件, 就是画界面的 3 添加showView() 用来显示界面 4 提供MenuFrameTest 用来为MenuFrame 进行单元测试 4 完成界面初始化代码 1 方法createContentPane() 用来初始化内容面板 2 ... 考试界面(ExamFrame) 5 创建类ExamFra
/MainFrame.java import javax.swing.*; import java.awt.*; import java.awt.event.*; public class MainFrame extends JFrame implements ActionListener{ private Container cont; private JPanel panelMenu; private JPanel panelToolBar; private JPanel panelCompent; private JButton btnLeft; private JButton btnCenter; private JButton btnRight; private JButton btnBorder; private JButton btnGrid; private JLabel labHit; private JMenuBar menuBar; private JMenu menuOperation; private JMenu menuHelp; private JMenuItem mItemFlowLeft; private JMenuItem mItemFlowCenter; private JMenuItem mItemFlowRight; private JMenuItem mItemBorder; private JMenuItem mItemGrid; private JToolBar toolBar; private JButton tBtnLeft; private JButton tBtnCenter; private JButton tBtnRight; private JButton tBtnBorder; private JButton tBtnGrid; public MainFrame(){ this.setTitle("第一个界面"); this.setBounds(300, 300, 600, 450); this.setDefaultCloseOperation(this.EXIT_ON_CLOSE); cont = this.getContentPane(); // cont.setLayout(new GridLayout(3, 9)); cont.setLayout(null); initPanel(); initMenu(); initToolBar(); initCompent(); addMenu(); addCompent(); // addBorderCompent(); this.setVisible(true); } public void initPanel(){ panelMenu = new JPanel(); panelMenu.setLayout(new FlowLayout(FlowLayout.LEFT)); panelMenu.setBounds(0, 0, 600, 30); panelToolBar = new JPanel(); panelToolBar.setLayout(new FlowLayout(FlowLayout.LEFT)); panelToolBar.setBounds(0, 30, 600, 50); panelCompent = new JPanel(); panelCompent.setLayout(new GridLayout(3, 2)); panelCompent.setBounds(0, 80, 600, 350); cont.add(panelMenu); cont.add(panelToolBar); cont.add(panelCompent); } public void initMenu(){ menuBar = new JMenuBar(); menuOperation = new JMenu("布局操作"); menuHelp = new JMenu("帮助"); mItemFlowLeft = new JMenuItem("流式左布局"); mItemFlowLeft.addActionListener(this); mItemFlowCenter = new JMenuItem("流式居中"); mItemFlowCenter.addActionListener(this); mItemFlowRight = new JMenuItem("流式右布局"); mItemFlowRight.addActionListener(this); mItemBorder = new JMenuItem("边界布局"); mItemBorder.addActionListener(this); mItemGrid = new JMenuItem("网格布局"); mItemGrid.addActionListener(this); } public void initToolBar(){ toolBar = new JToolBar(); tBtnLeft = new JButton(new ImageIcon("COPY.jpg")); tBtnLeft.addActionListener(this); tBtnLeft.setToolTipText("流式左布局"); tBtnCenter = new JButton(new ImageIcon("HELP.jpg")); tBtnCenter.addActionListener(this); tBtnCenter.setToolTipText("流式居中"); tBtnRight = new JButton(new ImageIcon("find.jpg")); tBtnRight.addActionListener(this); tBtnRight.setToolTipText("流式右布局"); tBtnBorder = new JButton(new ImageIcon("CUT.jpg")); tBtnBorder.addActionListener(this); tBtnBorder.setToolTipText("边界布局"); tBtnGrid = new JButton(new ImageIcon("OPEN.jpg")); tBtnGrid.addActionListener(this); tBtnGrid.setToolTipText("网格布局"); toolBar.add(tBtnLeft); toolBar.add(tBtnCenter); toolBar.add(tBtnRight); toolBar.add(tBtnBorder); toolBar.add(tBtnGrid); panelToolBar.add(toolBar); } public void initCompent(){ btnLeft = new JButton("LEFT"); btnLeft.addActionListener(this); btnRight = new JButton("RIGHT"); btnRight.addActionListener(this); btnCenter = new JButton("CENTER"); btnCenter.addActionListener(this); btnBorder = new JButton("BORDER"); btnBorder.addActionListener(this); btnGrid = new JButton("GRID"); btnGrid.addActionListener(this); labHit = new JLabel("提示"); } public void addMenu(){ menuOperation.add(mItemFlowLeft); menuOperation.add(mItemFlowCenter); menuOperation.add(mItemFlowRight); menuOperation.add(mItemBorder); menuOperation.add(mItemGrid); menuBar.add(menuOperation); menuBar.add(menuHelp); panelMenu.add(menuBar); } public void addCompent(){ panelCompent.add(btnLeft); panelCompent.add(btnCenter); panelCompent.add(btnRight); panelCompent.add(btnBorder); panelCompent.add(btnGrid); panelCompent.add(labHit); } public void addBorderCompent(){ panelCompent.add(btnLeft, "West"); panelCompent.add(btnCenter, "Center"); panelCompent.add(btnRight, "East"); panelCompent.add(btnBorder, "North"); panelCompent.add(btnGrid, "South"); } public void actionPerformed(ActionEvent aEvt){ if((btnLeft == aEvt.getSource()) ||(mItemFlowLeft == aEvt.getSource()) ||(tBtnLeft == aEvt.getSource())){ panelCompent.setLayout(new FlowLayout(FlowLayout.LEFT)); labHit.setText("流式布局管理器左靠齐"); } else { if((btnRight == aEvt.getSource()) ||(mItemFlowRight == aEvt.getSource()) ||(tBtnRight == aEvt.getSource())){ panelCompent.setLayout(new FlowLayout(FlowLayout.RIGHT)); labHit.setText("流式布局管理器右靠齐"); } else { if((btnCenter == aEvt.getSource()) ||(mItemFlowCenter == aEvt.getSource()) ||(tBtnCenter == aEvt.getSource())){ panelCompent.setLayout(new FlowLayout(FlowLayout.CENTER)); labHit.setText("流式布局管理器中靠齐"); } else { if((btnBorder == aEvt.getSource()) ||(mItemBorder == aEvt.getSource()) ||(tBtnBorder == aEvt.getSource())){ panelCompent.setLayout(new BorderLayout()); addBorderCompent(); labHit.setText("边界布局管理器"); } else{ if((btnGrid == aEvt.getSource()) ||(mItemGrid == aEvt.getSource()) ||(tBtnGrid == aEvt.getSource()) ){ panelCompent.setLayout(new GridLayout(3, 2)); // addBorderCompent(); labHit.setText("网格布局管理器"); } } } } } } } //LoginFrame.java import javax.swing.*; import java.awt.*; import java.awt.event.*; class LoginFrame extends JFrame implements ActionListener{ private Container cont; private JLabel labUserName; private JLabel labPassword; private JTextField txtUserName; private JTextField txtPassword; private JButton btnOK; private JButton btnCancel; public LoginFrame(){ this.setTitle("登录界面"); this.setSize(300, 250); this.setLocation(300, 300); this.setDefaultCloseOperation(this.EXIT_ON_CLOSE); initCont(); initCompent(); addCompent(); this.setVisible(true); } public void initCont(){ cont = this.getContentPane(); cont.setLayout(null); } public void initCompent(){ labUserName = new JLabel("用户名:"); labPassword = new JLabel("密 码:"); txtUserName = new JTextField(); txtPassword = new JPasswordField(); btnOK = new JButton("登录"); btnCancel = new JButton("重置"); } public void addCompent(){ cont.add(labUserName); labUserName.setBounds(40,40,80,30); cont.add(labPassword); labPassword.setBounds(40,90,80,30); cont.add(txtUserName); txtUserName.setBounds(120,40,120,30); cont.add(txtPassword); txtPassword.setBounds(120,90,120,30); cont.add(btnOK); btnOK.addActionListener(this); btnOK.setBounds(60,170,80,30); cont.add(btnCancel); btnCancel.addActionListener(this); btnCancel.setBounds(160,170,80,30); } public void actionPerformed(ActionEvent aEvt){ if(aEvt.getSource() == btnOK){ if((txtUserName.getText().equals("denghong")) &&(txtPassword.getText().equals("123"))){ new MainFrame(); this.dispose(); } } else{ if(aEvt.getSource() == btnCancel){ labUserName.setText(""); labPassword.setText(""); } } } } //Test.java public class Test{ public static void main(String[] args){ new LoginFrame(); } }

62,615

社区成员

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

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