欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-07-06 16:34:39
目录java基础入门 swing中间容器下面举例说明一下jscrollpane的方法java swing顶层容器类swing拥有三个常用的顶层容器类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类。

示例代码:

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

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()
    }
}

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