栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java 图形用户界面

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java 图形用户界面

代码实现

1、创建窗口对象

import javax.swing.*;  //

public class J10 extends Jframe { //Jframe是javax.swing包中用来创建窗口的类
	J10(){
		setTitle("登录界面"); //设置窗体标题名称
		setSize(400,150);   //设置窗口宽度与长度
		setVisible(true);
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new J10();
	}

}

运行结果:

 

2、创建对话框对象

Dialog是用来创建对话框窗口的类,它和普通窗口最大的区别就是对话框是依附在某个窗口上的,一旦它所依附的窗口

关闭了,对话框也要随着关闭。

import javax.swing.*;
public class exp2 extends JDialog {
public exp2(Jframe f,String s) {
	super(f,s);//调用父类JDialog的构造方法,确定依附的窗体、确定对话框窗口标题
	setLayout(null); //关闭布局管理器 关闭后可以自定义精确定位对话框位置与大小
	setBounds(30,30,200,100);//精确定位对话框窗口的位置与大小
	setVisible(true);//设置对话框窗口是否可见
}
public static void main(String[] args) {
		// TODO Auto-generated method stub
	J10 f =new J10(); //JDialog 对话框必须依附在窗口上
	new exp2 (f,"这是一个对话框窗口");
	}

}

J10是创建的上一个类。可以看出java语言使用的优点,可以使用已创建的系统类和自定义类

运行结果:

 

3、含有面板对象的窗口

JPanel类是无边框的容器,是中间容器必须依附在容器框架上

import javax.swing.*;
import java.awt.Color;
public class exp_3 extends J10{
public exp_3() {
	JPanel p=new JPanel(); //创建面板对象p
	p.setLayout(null);  //关闭面板布局管理器
	p.setBackground(Color.pink); //面板背景设置为粉色
	add(p);                 //将面板p加入到窗口
	JPanel p1 =new JPanel();   //面板
	p1.setBounds(50,50,200,200);//精确面板p1在p中位置大小
	p1.setBackground(Color.black);
	p.add(p1);
}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new exp_3 ();
	}

}

通过p.setLayout(null)方法可以关闭面板对象p上的默认布局管理器,使用setBounds(x,y,w,h)方法精确设置位置与大小

运行结果:

 

4、分隔面板 JSplitPane

import java.awt.*;
import javax.swing.*;

public class exp_4 extends Jframe{
public static void main(String[] args) {
		// TODO Auto-generated method stub
	exp_4 f = new exp_4();
	f.setVisible(true);	}
public exp_4() {
	setTitle("分隔面板界面");setSize(450,300);
	JSplitPane fg1 =new JSplitPane();//创建水平方向分隔面板;
	fg1.setBackground(Color.pink);
	fg1.setDividerLocation(80);//分隔条左侧的宽度为60像素
	//使用边界布局管理器
	add("Center", fg1); //分隔条添加到窗体中间
	fg1.setLeftComponent(new JLabel("左方"));
	add("East", new JButton("东")); //在窗体右方添加一个按钮组件
	add("West", new JButton("西"));//在左方添加一个按钮组件
	add("North", new JButton("北"));//在上方添加一个按钮组件
	add("South", new JButton("南"));//在下方添加一个按钮组件
	
	JSplitPane fg2=new JSplitPane(JSplitPane.VERTICAL_SPLIT);//垂直方向分隔面板
	fg2.setDividerLocation(60); //分隔条上方的高度为60像素
	fg2.setDividerSize(8);//分隔条宽度为8像素
	fg2.setoneTouchExpandable(true); //提供UI小部件,可以上下折叠
	fg2.setContinuousLayout(true); //在调整分隔条位置时面板的重绘方式为连续绘制
	fg1.setRightComponent(fg2);
	fg2.setLeftComponent(new JLabel("右上")); //在垂直面板上方添加一个标签组件  在JSplitpane中没有设置up和down 所以实现垂直方向分隔面板时默认left为up,right为down
	fg2.setRightComponent(new JLabel("右下"));//在垂直面板下方添加一个标签组件
	
	
}

}

运行结果:

 

5、选项卡面板

import java.awt.*;
import java.net.*;
import javax.swing.*;
import javax.swing.event.*;
public class exp10_5 extends Jframe{

	public static void main(String[] args) {
		exp10_5 frame=new exp10_5();
		frame.setVisible(true);	}
	public exp10_5() { //构造函数
		super(); //调用父方法
		setFocusCycleRoot(true); //内容循环
		setTitle("选项卡面板"); setBounds(100,100,500,375); 
		final JTabbedPane tabbedPane =new JTabbedPane();//设置选项卡标签的布局方式
		tabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT); //滚动条
		tabbedPane.addChangeListener(new ChangeListener() { //事件源.监听器(匿名内部类)
			
			public void stateChanged(ChangeEvent e) { 
				//获得被选中选项卡的索引
			int selectedIndex=tabbedPane.getSelectedIndex();
			   //获得指定索引的选项卡标签
			String title = tabbedPane.getTitleAt(selectedIndex);
			System.out.println(title);	}
		});
	    add(tabbedPane,BorderLayout.CENTER);
	    URL resource = exp10_5.class.getResource(""); //获得图片路径,
	    System.out.println(resource);//输出resource的路径
	    ImageIcon imageIcon=new ImageIcon(resource);
	    final JLabel tabLabelA=new JLabel();
	    tabLabelA.setText("选项卡A");
	    tabbedPane.addTab("选项卡A", imageIcon,tabLabelA,"单击查看选项卡A");
	    final JLabel tabLabelB=new JLabel();
	    tabLabelB.setText("选项卡b");
	    tabbedPane.addTab("选项卡B", imageIcon,tabLabelB,"单击查看选项卡B");
	    final JLabel tabLabelC=new JLabel();
	    tabLabelC.setText("选项卡C");
	    tabbedPane.addTab("选项卡C", imageIcon,tabLabelC,"单击查看选项卡C");
	    tabbedPane.setSelectedIndex(2); //设置索引为2 的选项卡被选中
	    tabbedPane.setEnabledAt(0, false); //设置索引为0的选项卡不可用

	   
	}
	

}

运行结果:

 

关于     URL resource = exp10_5.class.getResource(""); //获得图片路径,
             System.out.println(resource);//输出resource的路径

当“”中为空时我们通过输出能知道默认的路径,然后在路径的文件夹下放入自己要用的图片,一定要注意图片格式,图片名.(jpg或者png)如果代码中写的格式和图片对不上就会获取失败,获取到后

 控制台第一行为路径,找到此路径把一张图片放入改文件夹,并把图片名填入代码

 

事件、事件源、事件监听器

(1)创建监听类

(2)监听类实现对象

(3)将监听类与事件源关联绑定

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/591854.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号