Java布局管理器问题
/***BorderLayout演示布局管理器*问题,输出只有北部的窗口,是为什么?*/packagecom.Test1;importjava.awt.*;importj...
/**
* BorderLayout演示布局管理器
* 问题,输出只有北部的窗口,是为什么?
*/
package com.Test1;
import java.awt.*;
import javax.swing.*;
public class BorderLayout extends JFrame {
private static final Object west = null;
private static final Object WEST = null;
private static Object CENTER;
private static Object NORTH;
private static Object EAST;
private static Object SOUTH;
//定义组件
JButton jb1,jb2,jb3,jb4,jb5;
public static void main(String[] args) {
// TODO Auto-generated method stub
BorderLayout bl=new BorderLayout();
}
public BorderLayout()
{
//创建组件
jb1=new JButton("中部");
jb2=new JButton("北部");
jb3=new JButton("东部");
jb4=new JButton("南部");
jb5=new JButton("西部");
//添加组件
this.add(jb1,BorderLayout.CENTER);
this.add(jb2,BorderLayout.NORTH);
this.add(jb2,BorderLayout.EAST);
this.add(jb2,BorderLayout.SOUTH);
this.add(jb2,BorderLayout.WEST);
//设置窗口属性
this.setTitle("边界布局案例");
this.setSize(500, 400);
this.setLocation(600, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
} 展开
* BorderLayout演示布局管理器
* 问题,输出只有北部的窗口,是为什么?
*/
package com.Test1;
import java.awt.*;
import javax.swing.*;
public class BorderLayout extends JFrame {
private static final Object west = null;
private static final Object WEST = null;
private static Object CENTER;
private static Object NORTH;
private static Object EAST;
private static Object SOUTH;
//定义组件
JButton jb1,jb2,jb3,jb4,jb5;
public static void main(String[] args) {
// TODO Auto-generated method stub
BorderLayout bl=new BorderLayout();
}
public BorderLayout()
{
//创建组件
jb1=new JButton("中部");
jb2=new JButton("北部");
jb3=new JButton("东部");
jb4=new JButton("南部");
jb5=new JButton("西部");
//添加组件
this.add(jb1,BorderLayout.CENTER);
this.add(jb2,BorderLayout.NORTH);
this.add(jb2,BorderLayout.EAST);
this.add(jb2,BorderLayout.SOUTH);
this.add(jb2,BorderLayout.WEST);
//设置窗口属性
this.setTitle("边界布局案例");
this.setSize(500, 400);
this.setLocation(600, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
} 展开
1个回答
展开全部
问题一:
自定义的类BorderLayout和 java.awt.BorderLayout 这个类同名了 , 需要修改.
比如修改成BorderLayoutDemo
问题二:
这些组件的复制粘贴 ,注意修改啊 ,jb1 ,jb2 ,jb2...jb2 , jb2添加了4次....
this.add(jb1,BorderLayout.CENTER);
this.add(jb2,BorderLayout.NORTH);
this.add(jb2,BorderLayout.EAST);
this.add(jb2,BorderLayout.SOUTH);
this.add(jb2,BorderLayout.WEST);
并且由于你的类名也叫BorderLayout ,所以BorderLayout.CENTER..等方位的值都是null.
缺省的状态下,都会放到中间. 最后的覆盖前面的.所以最后只显示出1个jb2.并且居中
修改后的效果图
修改的代码
import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
//注意类名
public class BorderLayoutDemo extends JFrame {
// 定义组件
JButton jb1, jb2, jb3, jb4, jb5;
public static void main(String[] args) {
// TODO Auto-generated method stub
BorderLayoutDemo bl = new BorderLayoutDemo();
}
public BorderLayoutDemo() {
// 创建组件
jb1 = new JButton("中部");
jb2 = new JButton("北部");
jb3 = new JButton("东部");
jb4 = new JButton("南部");
jb5 = new JButton("西部");
// 添加组件
this.add(jb1, BorderLayout.CENTER);
this.add(jb2, BorderLayout.NORTH);
this.add(jb3, BorderLayout.EAST);
this.add(jb4, BorderLayout.SOUTH);
this.add(jb5, BorderLayout.WEST);
// 设置窗口属性
this.setTitle("边界布局案例");
this.setSize(500, 400);
this.setLocation(600, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询