Java中swing库使用

这两天java图形化编程我学的是一头雾水,里面的类和方法多的简直是让人难受,而且老师讲的的也是相当的让人绝望,太快了!不能拖后腿,我只能将学习c++的时间挤出来赶紧学java了,虽说eclipse可以自动补全,但前提是得记住方法名呀!学习java这一部分只能是边学习边操作,边看效果!这一部分只能是多敲代码了!我现在就只学了网格布局管理器和流式布局这部分,然后就是用swing库里面的一些类和方法。实现一些常用的简单的界面布局!感觉不是很难,但实现了确实有一种成就感!感觉会做软件了…呸!!!我怎么这么没出息!哎!
其实只要掌握图形界面的创建步骤
在这里插入图片描述
然后有一定的英文基础,一些方法也很快记住了!下面练习上几个实例吧!
下面就是一个简单的界面实现,用了复选框,和单选框还有就是面板,网格布局管理器3行1列,下面就是代码实现!
在这里插入图片描述

package practice;
import java.awt.GridLayout;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;

public class Demo2 {
	public static void main(String[] args) {
		Test ss = new Test();
	}
}

class Test extends JFrame{
	//设置按钮,面板组件
	JButton jb1 ,jb2 ,jb3;
	JPanel jp1 ,jp2,jp3;
	JLabel jlb1,jlb2,jlb3;
	JCheckBox  jcb1 ,jcb2,jcb3;	
	JRadioButton jrb1,jrb2,jrb3 ;
	ButtonGroup bg ;
	public Test(){
		
		jp1 = new JPanel();
		jp2 = new JPanel();
		jp3 = new JPanel();
		
		jlb1 = new JLabel("最喜欢的运动");
		jlb2 = new JLabel("性别");
		
		jb1 = new JButton("注册用户");
		jb2 = new JButton("取消注册");
		//将单选框,jrb1和jrb2加入到JRadioButton组中管理
		jrb1 = new JRadioButton("男");
		jrb2 = new JRadioButton("女");
		bg = new ButtonGroup();
		bg.add(jrb1);
		bg.add(jrb2);
		//复选框
		jcb1 = new JCheckBox("篮球");
		jcb2 = new JCheckBox("足球");
		jcb3 = new JCheckBox("羽毛球");
		
		//设置布局管理器
		this.setLayout(new GridLayout(3,1));
		
		jp1.add(jlb1);
		jp1.add(jcb1);
		jp1.add(jcb2);
		jp1.add(jcb3);
		
		jp2.add(jlb2);
		jp2.add(jrb1);
		jp2.add(jrb2);
		
		jp3.add(jb1);
	jp3.add(jb2);
		
		this.setSize(400,150);
		this.add(jp1);
		this.add(jp2);
		this.add(jp3);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setVisible(true);
	}
}

接着做一个盗版的QQ聊天界面吧!这么丑的界面,麻花疼知道会不会锤爆我的头呢?
登陆界面
在这里插入图片描述

package practice;

import java.awt.GridLayout;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

public class demo8 {

	public static void main(String[]args) {
		Test1 ds = new Test1(); 
	}
}

class Test1 extends JFrame{
	
	JPanel jp1 ,jp2 ,jp3;
	JButton jb1,jb2;
	JLabel jlb1,jlb2;
	JTextField jtf1,jpf2 ;
	JPasswordField jps1;
	public Test1() {
		jb1 = new JButton("登录");
		jb2 = new JButton("取消");
	
		jp1 = new JPanel();
		jp2 = new JPanel();
		jp3 = new JPanel();
		
		jlb1 = new JLabel("用户名");
		jlb2 = new JLabel("密    码");
		
		jtf1 = new JTextField(10);
		jpf2= new JPasswordField(10);
		this.setLayout(new GridLayout(3,1));
		//加入各个组件
		jp1.add(jlb1);
		jp1.add(jtf1);
		
		jp2.add(jlb2);
		jp2.add(jpf2);
		
		jp3.add(jb1);
		jp3.add(jb2);
		
		this.add(jp1);
		this.add(jp2);
		this.add(jp3);
		this.setTitle("QQ登录界面");
		this.setIconImage((new ImageIcon("\\Practice\\12.jpg")).getImage());
		this.setSize(300,150);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setVisible(true);
	}
}

在这里插入图片描述
也就50来行代码而已!!!

package practice;
import java.awt.BorderLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class Chat {
	public static void main(String []args) {
		Demo10 d= new Demo10();
	}
}

class Demo10 extends JFrame{
	//多行文本进行输入
	JTextArea jta = null ;
	JScrollPane jsp = null;
	JPanel jp1 = null ;
	JComboBox jcb=null;
	JTextField jtf =null; 
	JButton jb= null ;
	public Demo10(){
		
		jta = new JTextArea();
		jsp = new JScrollPane(jta);
		jp1 = new JPanel();
		
		JScrollPane jsp = null ;
		String []chatter = {"布什","拉登"};
		jcb= new JComboBox(chatter);

		jtf =new JTextField(10);
		jb = new JButton("发送");
		//设置布局
		//添加组件
		
		jp1.add(jcb);
		jp1.add(jtf);
		jp1.add(jb);
		
		this.add(jta);
		
		//加入Frame
		this.add(jta);
		this.add(jp1,BorderLayout.SOUTH);
		this.setTitle("QQ聊天");
		this.setSize(400,600);
		this.setIconImage((new ImageIcon("\\Practice\\12.jpg")).getImage());
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setVisible(true);
	}
}

接着就是一个水平分割界面应用
在这里插入图片描述

package practice;
import javax.swing.*;
public class Print {
	public static void main(String []args) {
		demo9 d = new demo9();
	}
}

class demo9 extends JFrame{
	
	JSplitPane jsp ;
	JList jlst ;
	JLabel jlb ;
	
	public demo9(){
		//创建组件
		this.setTitle("界面");
		String [] words = {"tiger","cool","cold"};
		jlst = new JList(words);
		jlb = new JLabel(new ImageIcon("\\Practice\\1.jpg"));
		//拆分窗口
		jsp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
		//设置窗口布局管理器
		//可以伸缩
		jsp.setOneTouchExpandable(true);
		//添加组件
		this.add(jsp);
		jsp.add(jlst);
		jsp.add(jlb);
		this.setSize(400,300);
		this.setLocation(200, 200);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setVisible(true);
	}
}

嗯,就这些吧。关键还是得多加练习!不练说再多都是纸上谈兵!

猜你喜欢

转载自blog.csdn.net/qq_41681241/article/details/84668313