当前位置:  技术问答>java相关

JPanel设置布局管理器BorderLayout的一个问题。详情见内。谢谢。

    来源: 互联网  发布时间:2015-03-30

    本文导语:  见如下程序,为什么p没有完全充满b的北面。如何修改。谢谢 import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.util.*; public class Test extends JFrame{ public static void main(String[] args){ JFrame t=new Test(); t.s...

见如下程序,为什么p没有完全充满b的北面。如何修改。谢谢
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;

public class Test extends JFrame{
public static void main(String[] args){
JFrame t=new Test();
t.setSize(200,300);
t.setVisible(true);
}

public Test(){
JPanel b=new JPanel();
b.setBorder(BorderFactory.createRaisedBevelBorder());
JPanel p=new JPanel();
p.setBorder(BorderFactory.createLoweredBevelBorder());
p.add(new JButton("1"));
p.add(new JButton("2"));
getContentPane().add(b);
b.add(p,BorderLayout.NORTH);

}

|
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;

public class Test extends JFrame
{
        public static void main(String[] args)
        {
                JFrame t=new Test();
                t.setSize(200,300);
                t.setVisible(true);
        }
        
        public Test()
        {
                JPanel b=new JPanel();
                b.setBorder(BorderFactory.createRaisedBevelBorder());
                b.setLayout(new BorderLayout());
                JPanel p=new JPanel();
                p.setBorder(BorderFactory.createLoweredBevelBorder());
                p.add(new JButton("1"));
                p.add(new JButton("2"));
                getContentPane().add(b);
                b.add(p,BorderLayout.NORTH);
        } 
}

|
p已经完全充满b的北面,但button1和2只是占据p的center部分!,因为默认的就是

p.add(new JButton("1"));p.add(new JButton("1"),BorderLayout.CENTER);
                
                

|
JPanel默认的LayoutManager是FlowLayout,
你在创建JPanel的实例的时候,
需要把它设置为BorderLayout,

JPanel p = new JPanel(new BorderLayout());

|
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;

public class Test extends JFrame
{
        public static void main(String[] args)
        {
                JFrame t=new Test();
                t.setSize(200,300);
                t.setVisible(true);
        }
        
        public Test()
        {
                JPanel b=new JPanel();
                b.setBorder(BorderFactory.createRaisedBevelBorder());
                b.setLayout(new BorderLayout()); //JPanel的默认布局管理器是FlowLayout
                JPanel p=new JPanel();
                p.setBorder(BorderFactory.createLoweredBevelBorder());
                p.add(new JButton("1"));
                p.add(new JButton("2"));
                getContentPane().add(b);
                b.add(p,BorderLayout.NORTH);
        } 
}

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 为什么JPanel不响应mouse事件。详情见内。谢谢
  • java命名空间javax.swing类jpanel的类成员方法: jpanel定义及介绍
  • 如何使JPanel中的一个继承JPanel的组件的尺寸发生动态改变???
  • java命名空间javax.swing类jpanel.accessiblejpanel的类成员方法: jpanel.accessiblejpanel定义及介绍
  • 我要在JPanel上画一个字符串String,有没有让它倒立(竖着显示在JPanel上)的函数(类似drawSting()的)
  • java命名空间javax.swing类jpanel的类成员方法: getaccessiblecontext定义及介绍
  • JPanel中如何动态生成组件?
  • java命名空间javax.swing类jpanel的类成员方法: paramstring定义及介绍
  • 我是JAVA新手,所以我不明白(JPanel)类的东西
  • java命名空间javax.swing类jpanel的类成员方法: getui定义及介绍
  • 为什么JBuilder 7中的JPanel的layout属性出不来
  • java命名空间javax.swing类jpanel的类成员方法: setui定义及介绍
  • JPanel中如何捕获键盘事件?
  • java命名空间javax.swing类jpanel的类成员方法: getuiclassid定义及介绍
  • 怎么可以得到一个JPanel下的所有JTextField的所有变量名。
  • java的JPanel问题
  • 再开一贴,JPanel如何收到键盘事件
  • 请问怎么获得一个JPanel的更改大小完毕的消息
  • JPanel如何加标题?
  • 如何通过菜单切换同一对象下jpanel。有何方法,如果有代码示范,就更好了
  • 我在JPanel上画了一个图,我怎么才能实现缩放功能即,我用放大,缩小的Button控制)???? 在线等待...
  • 请问JPanel不支持滚动条吗?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3