创建windows的程序,就是那种带界面的。如果想要有VB那种可拖拉的设计,需要上网上下载“swing的插件”。


第一部分:Jframe和JPanel


1.Frame空窗口。

package text;
import javax.swing.JFrame;					//新建窗口必须有的头文件


public class text1 {
	public static void main(String[] args)
	{
		JFrame f=new JFrame();				//新建窗口的格式。
		f.setVisible(true);				//让新建的窗口可见。
		f.setSize(1000,100);				//设置窗口的宽高。
	}
}

2.Frame标题,最上层,等一坨用到再说的细节。

package text;
import javax.swing.JFrame;				//新建窗口必须有的头文件


public class text1 {
	public static void main(String[] args)
	{
		JFrame f=new JFrame();			//新建窗口的格式。
		f.setVisible(true);			//让新建的窗口可见。
		f.setSize(1000,1000);			//设置窗口的宽高。
		f.setLocation(300, 500);		//设置窗口在桌面的显示地点。
		f.setTitle("666");			//让标题叫666。
		f.setAlwaysOnTop(true);			//总在最上层。
	}


}

3.Panel空窗口:

package text;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class text1
{
	public static void main(String[] args)
	{
		JFrame f = new JFrame();
		f.setVisible(true);
		f.setSize(500, 500);
		JPanel p = new JPanel();
		f.add(p);
	}
}


4.Panel的边距:

JFrame能用的Jpanel应该都能用。

package text;
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.border.EmptyBorder;


public class text1
{
	public static void main(String[] args)
	{
		JFrame f = new JFrame();
		f.setVisible(true);
		f.setSize(500, 500);
		JPanel p = new JPanel();
		p.setBorder(new EmptyBorder(100,100,100,100));		//这个函数就是设置边框的。
		
		p.setLayout(new GridLayout(1,2,10,10));		
		JLabel l = new JLabel("账号:");
		JTextArea s = new JTextArea();
		p.add(l);
		p.add(s);
		f.add(p);
	}
}



第二部分:部件


1.按钮:

package text;
import java.awt.Button;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class text1
{
	public static void main(String[] args)
	{
		JFrame f = new JFrame();
		f.setVisible(true);
		f.setSize(500, 500);
		JPanel p = new JPanel();
		Button b = new Button("666");				//新加一个函数的时候如果不知道头文件,按Ctrl+Shift+M他自己就加上去了。
		p.add(b);
		f.add(p);
	}
}


点击按钮弹出另一个界面

JFrame f3 = new JFrame("学生信息");		
				f3.setVisible(true);
				f3.setSize(500,300);
				JPanel p3 = new JPanel();
				
				Button b31 = new Button("学生信息查询");				//新加一个函数的时候如果不知道头文件,按Ctrl+Shift+M他自己就加上去了。
				Button b32 = new Button("学生信息插入");
				Button b33 = new Button("学生信息删除");
				Button b34 = new Button("学生信息修改");
				Button b35 = new Button("返回");
				b35.addActionListener(new ActionListener(){			//这个就是点按钮弹界面的代码
					public void actionPerformed(ActionEvent e){
						f3.setVisible(false);
						f2.setVisible(true);
					}
				});
				
				p3.add(b31);
				p3.add(b32);
				p3.add(b33);
				p3.add(b34);
				p3.add(b35);
				f3.add(p3);


2.文本显示

package text;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class text1
{
	public static void main(String[] args)
	{
		JFrame f = new JFrame();
		f.setVisible(true);
		f.setSize(500, 500);<span >	</span>
		JPanel p = new JPanel();
		
		JLabel l = new JLabel("666");
		p.add(l);
		f.add(p);
	}
}

3.账号框:

package text;
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class text1
{
	public static void main(String[] args)
	{
		JFrame f = new JFrame();
		f.setVisible(true);
		f.setSize(500, 500);
		JPanel p = new JPanel();
		
		p.setLayout(new GridLayout(1,2,10,10));		//这代表的是1行,2列,行间距是10,列间距是10。
		JLabel l = new JLabel("账号:");
		JTextField s = new JTextField();
		p.add(l);
		p.add(s);
		f.add(p);
	}
}

4.密码框:

package text;
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;

public class text1
{
	public static void main(String[] args)
	{
		JFrame f = new JFrame();
		f.setVisible(true);
		f.setSize(500, 500);
		JPanel p = new JPanel();
		
		p.setLayout(new GridLayout(1,2,10,10));
		JLabel l = new JLabel("密码:");
		JPasswordField s = new JPasswordField();
		p.add(l);
		p.add(s);
		f.add(p);
	}
}


5.文本域

package text;
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;


public class text1
{
	public static void main(String[] args)
	{
		JFrame f = new JFrame();
		f.setVisible(true);
		f.setSize(500, 500);
		JPanel p = new JPanel();
		
		p.setLayout(new GridLayout(1,2,10,10));		//这代表的是1行,2列,行间距是10,列间距是10。
		JLabel l = new JLabel("账号:");
		JTextArea s = new JTextArea();
		p.add(l);
		p.add(s);
		f.add(p);
	}
}


第三部分:布局


1.FlowLayout

package text;
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JPanel;


public class text1
{
	public static void main(String[] args)
	{
		JFrame f = new JFrame();
		f.setVisible(true);
		f.setSize(500, 500);
		JPanel p = new JPanel();
		
		p.setLayout(new FlowLayout(FlowLayout.LEFT));		//括号里面的如果不加(FlowLayout.LEFT),就是默认居中。
		for(int i=0; i<9; i++)
		{
			Button b = new Button("Buttton"+i);
			p.add(b);
		}
		f.add(p);
	}
}


2.BorderLayout

package text;
import java.awt.BorderLayout;
import java.awt.Button;
import javax.swing.JFrame;
import javax.swing.JPanel;


public class text1
{
	public static void main(String[] args)
	{
		JFrame f = new JFrame();
		f.setVisible(true);
		f.setSize(500, 500);
		JPanel p = new JPanel();
		
		p.setLayout(new BorderLayout());
		Button b1 = new Button("button"+1);
		p.add(b1,BorderLayout.NORTH);
		Button b2 = new Button("button"+2);
		p.add(b2,BorderLayout.SOUTH);
		Button b3 = new Button("button"+3);
		p.add(b3,BorderLayout.WEST);
		Button b4 = new Button("button"+4);
		p.add(b4,BorderLayout.EAST);
		Button b5 = new Button("button"+5);
		p.add(b5,BorderLayout.CENTER);
		f.add(p);
	}
}


3.GridLayout

组件里面有写。


第四部分:事件的反馈


1.ActionListener

package text;
import java.awt.Button;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

 class Listen implements ActionListener
 {

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		JOptionPane.showMessageDialog(null, "我被点击了");			//这句是弹窗口。
	}
	 
 }

public class text1
{
	public static void main(String[] args)
	{
		JFrame f = new JFrame();
		f.setVisible(true);
		f.setSize(500, 500);
		JPanel p = new JPanel();
		
		Button b = new Button();
		Listen l = new Listen();
		b.addActionListener(l);
		p.add(b);
		f.add(p);
	}
}

2.WindowListener

package text;
import java.awt.Button;
import java.awt.event.ActionEvent;
import java.awt.event.ComponentListener;
import java.awt.event.FocusListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

class Listen implements WindowListener
{

	@Override
	public void windowActivated(WindowEvent arg0) {
		// TODO Auto-generated method stub
		System.out.println("缩小后打开");
	}

	@Override
	public void windowClosing(WindowEvent arg0) {
		// TODO Auto-generated method stub
		System.out.println("关闭");
	}

	@Override
	public void windowIconified(WindowEvent arg0) {
		// TODO Auto-generated method stub
		System.out.println("缩小");
	}

	@Override
	public void windowOpened(WindowEvent arg0) {					
		// TODO Auto-generated method stub
		System.out.println("打开");
	}
	
}


public class text1
{
	public static void main(String[] args)
	{
		JFrame f = new JFrame();
		f.setVisible(true);
		f.setSize(500, 500);
		JPanel p = new JPanel();
		
		Listen l = new Listen();
		f.addWindowListener(l);							//这里要注意只有JFrame才会有addWindouListener。
		f.add(p);
	}
}


第五部分:swing小实例