Java中为面板(JPanel)添加标题
2013-11-09 13:23
302 查看
需求:用实线把各个面板圈起来,然后把面板的名字写在圈圈的左上角。
原始画面:
由于原来的程序使用的是AWT中的Panel,而这个控件我们没有设置titleBorder的方法。
现在将更新为Swing中的JPanel面板,代码分别为:
旧代码:
Panel pRoboCtrl=new Panel();
pRoboCtrl.setLayout(new GridLayout(5, 1, 2, 5));
// Robot控制面板的第一排,面板的标题
Panel pR1=new Panel();
pR1.setLayout(new GridLayout(1, 1, 2, 3));
//Row One
pR1.add(new Label("Robot Control",Label.CENTER));
新代码:
JPanel pRoboCtrl=new JPanel();
pRoboCtrl.setLayout(new GridLayout(4, 1, 2, 5));
Border titleBorder1=BorderFactory.createTitledBorder("Robot Control");
pRoboCtrl.setBorder(titleBorder1);
原来的处理方式是将一个Label放到Panel中,然后将这个Panel放到外层的Panel中,新方式是将外层Panel定义成JPanel,然后设置Border的值为BorderFactory产生的一个实例。
解决这个问题后,新问题又来了,两个JPanel中的内容不一样,上面多,下面少,但是现在面板却是一样大,要改成面板高度自动适应。
其实这只需要修改一行代码就可以了,代码如下:
旧代码:
CP.setLayout(new GridLayout(3, 1, 2, 5));
新代码:
CP.setLayout(new BoxLayout(CP, BoxLayout.Y_AXIS)); // 沿垂直方向布置组件
旧代码的处理方式是网格布局,新代码的方式是用BoxLayout布局管理器,它会按要求垂直或水平分布。
以下代码创建了一个JPanel容器,它采用垂直 BoxLayout,在这个容器中包含两个Button,这两个Button沿垂直方向分布,并且保持像素为 5 的固定垂直间隔。
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));// 沿垂直方向布置组件
panel.add(new JButton("Button1"));
panel.add(Box.createVerticalStrut(5));
panel.add(new JButton("Button2"));
源代码:下载
FeedBack:
# re: Java中为面板(JPanel)添加标题
panel.setBorder(BorderFactory.createTitledBorder("标题"));
BorderFactory中的方法:
static TitledBorder createTitledBorder(Border border)
创建一个空标题的新标题边框,使其具有指定的边框对象、默认的文本位置(位于顶线上)、默认的调整 (leading),以及默认的字体和文本颜色(由当前外观确定)。
static TitledBorder createTitledBorder(Border border, String title)
向现有边框添加一个标题,使其具有默认的位置(位于顶线上)、默认的调整 (leading),以及默认的字体和文本颜色(由当前外观确定)。
static TitledBorder createTitledBorder(Border border, String title, int titleJustification, int titlePosition)
向现有边框添加一个标题,使其具有指定的位置和默认字体和文本颜色(由当前外观确定)。
static TitledBorder createTitledBorder(Border border, String title, int titleJustification, int titlePosition, Font titleFont)
向现有边框添加一个标题,使其具有指定的位置和默认的文本颜色(由当前外观确定)。
static TitledBorder createTitledBorder(Border border, String title, int titleJustification, int titlePosition, Font titleFont, Color titleColor)
向现有边框添加一个标题,使其具有指定的位置、字体和颜色。
原始画面:
由于原来的程序使用的是AWT中的Panel,而这个控件我们没有设置titleBorder的方法。
现在将更新为Swing中的JPanel面板,代码分别为:
旧代码:
Panel pRoboCtrl=new Panel();
pRoboCtrl.setLayout(new GridLayout(5, 1, 2, 5));
// Robot控制面板的第一排,面板的标题
Panel pR1=new Panel();
pR1.setLayout(new GridLayout(1, 1, 2, 3));
//Row One
pR1.add(new Label("Robot Control",Label.CENTER));
新代码:
JPanel pRoboCtrl=new JPanel();
pRoboCtrl.setLayout(new GridLayout(4, 1, 2, 5));
Border titleBorder1=BorderFactory.createTitledBorder("Robot Control");
pRoboCtrl.setBorder(titleBorder1);
原来的处理方式是将一个Label放到Panel中,然后将这个Panel放到外层的Panel中,新方式是将外层Panel定义成JPanel,然后设置Border的值为BorderFactory产生的一个实例。
解决这个问题后,新问题又来了,两个JPanel中的内容不一样,上面多,下面少,但是现在面板却是一样大,要改成面板高度自动适应。
其实这只需要修改一行代码就可以了,代码如下:
旧代码:
CP.setLayout(new GridLayout(3, 1, 2, 5));
新代码:
CP.setLayout(new BoxLayout(CP, BoxLayout.Y_AXIS)); // 沿垂直方向布置组件
旧代码的处理方式是网格布局,新代码的方式是用BoxLayout布局管理器,它会按要求垂直或水平分布。
以下代码创建了一个JPanel容器,它采用垂直 BoxLayout,在这个容器中包含两个Button,这两个Button沿垂直方向分布,并且保持像素为 5 的固定垂直间隔。
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));// 沿垂直方向布置组件
panel.add(new JButton("Button1"));
panel.add(Box.createVerticalStrut(5));
panel.add(new JButton("Button2"));
源代码:下载
FeedBack:
# re: Java中为面板(JPanel)添加标题
panel.setBorder(BorderFactory.createTitledBorder("标题"));
BorderFactory中的方法:
static TitledBorder createTitledBorder(Border border)
创建一个空标题的新标题边框,使其具有指定的边框对象、默认的文本位置(位于顶线上)、默认的调整 (leading),以及默认的字体和文本颜色(由当前外观确定)。
static TitledBorder createTitledBorder(Border border, String title)
向现有边框添加一个标题,使其具有默认的位置(位于顶线上)、默认的调整 (leading),以及默认的字体和文本颜色(由当前外观确定)。
static TitledBorder createTitledBorder(Border border, String title, int titleJustification, int titlePosition)
向现有边框添加一个标题,使其具有指定的位置和默认字体和文本颜色(由当前外观确定)。
static TitledBorder createTitledBorder(Border border, String title, int titleJustification, int titlePosition, Font titleFont)
向现有边框添加一个标题,使其具有指定的位置和默认的文本颜色(由当前外观确定)。
static TitledBorder createTitledBorder(Border border, String title, int titleJustification, int titlePosition, Font titleFont, Color titleColor)
向现有边框添加一个标题,使其具有指定的位置、字体和颜色。
相关文章推荐
- Java中为面板(JPanel)添加标题
- Java中为面板(JPanel)添加标题
- 为面板(JPanel)添加标题
- 为面板(JPanel)添加标题
- JFrame(框架)中添加和设置JPanel(面板)的方法
- java怎样在面板中添加背景图片
- java的JPanel面板刷新
- 【Java GUI】Java面板基础:JPanel
- java入门教程-10.4Java面板基础:JPanel和JScrollPane
- JAVA中给 JPanel 加标题头
- Java swing创建按钮并添加到面板中
- Java面板基础中的JPanel和JScrollpane
- JAVA--编写一个JFrame,标题为“计算的窗口”,在该窗口中组件的布局是FlowLayout。窗口中添加两个文本区,当我们在一个文本区中输入若干个数时,另一个文本区同时对输入的数进行求和运算并求
- JFrame(框架)中添加和设置JPanel(面板
- JAVA学习Swing章节JPanel和JScrollPane面板的简单学习
- 在JPanel面板中添加JScrollPane滚动条
- JFrame(框架)中添加和设置JPanel(面板)的方法
- Java面板基础:JPanel和JScrollPane
- [JAVA]②重绘JPanel面板,设置窗体背景图片跟随图片变化
- 【worldwind学习】worldwindjava左侧面板添加goto面板