Java基础入门 Swing中间容器的使用

2022-07-20,,,,

目录
  • java基础入门 swing中间容器
    • 下面举例说明一下jscrollpane的方法
  • java swing顶层容器类
    • swing拥有三个常用的顶层容器类

java基础入门 swing中间容器

在swing中不仅有jframe、jdialog这样的顶级窗口,还拥有一些中间容器,这些容器不能单独存在,必须依存在顶级窗口中。最常见的是jpanel、jscrollpane。

  • jpanel:jpanel和awt中的panel组件使用方法基本一致,他是一个无边框不能被放大、移动、关闭的面板,它的默认布局管理器是flowlayout,当然这是可以使用setlayout()方法重新设置的
  • jscrollpane:与jpanel不同的是,jscrollpane是一个带有滚动条的面板容器而且这个面板只能添加一个组件,如果想添加多个组件就必须先把多个组件添加到panel中再将panel添加到jscroollpane中

下面举例说明一下jscrollpane的方法

jscrollpane的构造方法及方法
方法声明 功能描述
jscrollpane() 创建一个空的jscrollpane面板
jscrollpane(component view) 创建一个显示指定组件的jscrollpane面板,只要组件大小超过面板大小就会出现水平和垂直滚动条
jscrollpane(component view,int vsbpolicy,int hsbpoliy) 创建一个显示指定容器的jscrollpane面板
import java.awt.*;
import javax.swing.*; 
public class main extends jframe{
	public main(){
		this.settitle("paneldemo");
		jscrollpane scrollpane=new jscrollpane();
		//设置水平进度条需要时出现
		scrollpane.sethorizontalscrollbarpolicy(scrollpaneconstants.horizontal_scrollbar_as_needed);
		//设置垂直进度条一直出现
		scrollpane.setverticalscrollbarpolicy(scrollpaneconstants.vertical_scrollbar_always);
		
		jpanel panel=new jpanel();
		panel.add(new jbutton("按钮1"));
		panel.add(new jbutton("按钮2"));
		panel.add(new jbutton("按钮3"));
		panel.add(new jbutton("按钮4"));
		for(int i=5;i<100;i++){
			panel.add(new jbutton("按钮"+i));
		}
		
		//将jpanel面板添加在滚动面板上显示
		scrollpane.setviewportview(panel);
		//将滚动面板添加到窗体的中部(center)
		this.add(scrollpane,borderlayout.center);
		
		//创建窗体可关闭按钮
		this.setdefaultcloseoperation(jframe.exit_on_close);
		this.setsize(400,250);
		this.setvisible(true);
	}
	public static void main(string[] args)throws exception{
       new main();
	}
}

java swing顶层容器类

swing拥有三个常用的顶层容器类

  • jframe
  • jdialog
  • japplet

1,任何画面类,必须是容器类的分支,任何界面树的顶层容器类必须是上面三个中的一个。

2,任何画面组件只能被容器类引用一次,如果复制他们到另外的容器类,它会被从第一个容器类中删除然后放在第二个容器类中。

3,顶层容器类都含有一个内容面板,包含了顶层容器要显示的内容

4,顶层容器类通常含有一个menu bar, 这个menu bar可以带来更好的使用体验,比如在mac系统中,menu bar会显示在screen顶上而不是app顶上。

注意,jpanel默认的排版方式是flowlayout

但是可以使用顶层容器类的setcontentpanel替换成自定义布局的jpanel类。

示例代码:

package com.jesse.kotlin.com.jesse.gui 
import java.awt.borderlayout
import java.awt.dimension
import javax.swing.*
 
class windowmain { 
    private val rootcontainer = jframe("gui demo") 
    fun buildgui(){
        rootcontainer.defaultcloseoperation = jframe.exit_on_close
        var label = jlabel("hello world")
        rootcontainer.contentpane.add(label, borderlayout.center)
        rootcontainer.preferredsize = dimension(400, 300)
 
        var menupanel:jmenubar = jmenubar()
        menupanel.add(jmenu("help"))
        rootcontainer.jmenubar = menupanel
 
        rootcontainer.pack()
        rootcontainer.isvisible = true
    }
} 
fun main(args: array<string>) {
    swingutilities.invokelater {
        windowmain().buildgui()
    }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

《Java基础入门 Swing中间容器的使用.doc》

下载本文的Word格式文档,以方便收藏与打印。