这两天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);
}
}
嗯,就这些吧。关键还是得多加练习!不练说再多都是纸上谈兵!