1、JFrame:
import javax.swing.JFrame;
import java.awt.Color;
public class Demo{
public static void main(String args[]) throws Exception{
JFrame f=new JFrame("第一个jframe");//创建一个容器
f.setSize(400,400);//设置组件的大小
f.setLocation(200,100);//设置组件在屏幕上显示的位置
f.setBackground(Color.WHITE);//设置组件的 背景颜色
f.setVisible(true);
}
}
import javax.swing.JFrame;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Point;
public class Demo{
public static void main(String args[]) throws Exception{
JFrame f=new JFrame("第一个jframe");//创建一个容器
Dimension d=new Dimension(100,100);
f.setSize(d);//设置组件的大小
Point p=new Point(150,150);
f.setLocation(p);//设置组件在屏幕上显示的位置
f.setBackground(Color.WHITE);//设置组件的 背景颜色
f.setVisible(true);
}
}
注意public JFrame() throws HeadlessException函数会抛出异常,
但是抛出的异常是RuntimeException的子类,所以此类的异常可以不用
处理,由JVM进行处理;
2、JLable组件:
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.awt.Color;
import java.awt.Font;
import java.awt.Dimension;
import java.awt.Point;
public class Demo{
public static void main(String args[]) throws Exception{
JFrame f=new JFrame("第一个jframe");//创建一个窗体
JLabel lab=new JLabel("yuj",JLabel.CENTER);//实例化一个标签对象
Font fnt=new Font("Serief",Font.ITALIC+Font.BOLD,28);
lab.setFont(fnt);
f.add(lab);
Dimension d=new Dimension(100,100);
f.setSize(d);//设置组件的大小
Point p=new Point(150,150);
f.setLocation(p);//设置组件在屏幕上显示的位置
f.setBackground(Color.WHITE);//设置组件的 背景颜色
f.setVisible(true);
}
}
在JLabel中也可以设置图片;
如果想设置显示图片,则可以使用IO流的方式进行图片的读取;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import java.awt.Color;
import java.awt.Font;
import java.awt.Dimension;
import java.awt.Point;
import java.io.*;
public class Demo{
public static void main(String args[]) throws Exception{
JFrame f=new JFrame("第一个jframe");//创建一个窗体
String picPath="d:"+File.separator+"che.jpg";
File file=new File(picPath);
InputStream input =null;
byte b[]=new byte[(int)file.length()];
input=new FileInputStream(file);
input.read(b);//读入到b中
input.close();
Icon icon=new ImageIcon(b);
JLabel lab=new JLabel("yuj",icon,JLabel.CENTER);//实例化一个标签对象
Font fnt=new Font("Serief",Font.ITALIC+Font.BOLD,28);
lab.setForeground(Color.RED);
lab.setFont(fnt);
f.add(lab);
Dimension d=new Dimension(300,300);
f.setSize(d);//设置组件的大小
Point p=new Point(150,150);
f.setLocation(p);//设置组件在屏幕上显示的位置
f.setBackground(Color.WHITE);//设置组件的 背景颜色
f.setVisible(true);
}
}
但是,以上设置图片的方法实在是太麻烦了,需要通过IO流的方式读取;
可以再ImageIcon的构造方法中设置图片的路径;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import java.awt.Color;
import java.awt.Font;
import java.awt.Dimension;
import java.awt.Point;
import java.io.*;
public class Demo{
public static void main(String args[]) throws Exception{
JFrame f=new JFrame("第一个jframe");//创建一个窗体
String picPath="d:"+File.separator+"che.jpg";
Icon icon=new ImageIcon(picPath);
JLabel lab=new JLabel("yuj",icon,JLabel.CENTER);//实例化一个标签对象
Font fnt=new Font("Serief",Font.ITALIC+Font.BOLD,28);
lab.setForeground(Color.RED);
lab.setFont(fnt);
f.add(lab);
Dimension d=new Dimension(300,300);
f.setSize(d);//设置组件的大小
Point p=new Point(150,150);
f.setLocation(p);//设置组件在屏幕上显示的位置
f.setBackground(Color.WHITE);//设置组件的 背景颜色
f.setVisible(true);
}
}
3、JButton组件:
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.Font;
import java.awt.Color;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import java.io.*;
public class Demo{
public static void main(String args[]) throws Exception{
JFrame f=new JFrame("第一个jframe");//创建一个窗体
String picPath="d:"+File.separator+"che.jpg";
Icon icon=new ImageIcon(picPath);
JButton but=new JButton("按我",icon);
Font fnt=new Font("Serief",Font.BOLD,23);
but.setFont(fnt);
f.add(but);
f.setSize(200,300);
f.setLocation(300,300);
f.setBackground(Color.WHITE);
f.setVisible(true);
}
}
4、布局管理器:
FlowLayout布局管理器:所有的组件会一次排列;
import javax.swing.JFrame;
import java.awt.FlowLayout;
import javax.swing.JButton;
public class Demo{
public static void main(String args[]) throws Exception{
JFrame f=new JFrame("一个jframe");//创建一个容器
f.setLayout(new FlowLayout(FlowLayout.CENTER,3,3));
JButton but=null;
for(int i=0;i<6;i++){
but=new JButton("BUTTON"+i);
f.add(but);
}
f.setLocation(150,150);
f.setSize(300,300);
f.setVisible(true);
}
}
BorderLayout布局管理器:分为东西南北中;
import javax.swing.JFrame;
import java.awt.BorderLayout;
import javax.swing.JButton;
public class Demo{
public static void main(String args[]) throws Exception{
JFrame f=new JFrame("一个jframe");//创建一个容器
f.setLayout(new BorderLayout(3,3));
f.add(new JButton("东(EAST)"),BorderLayout.EAST);
f.add(new JButton("西(WEST)"),BorderLayout.WEST);
f.add(new JButton("南(SOUTH)"),BorderLayout.SOUTH);
f.add(new JButton("北(NORTH)"),BorderLayout.NORTH);
f.add(new JButton("中(CENTER)"),BorderLayout.CENTER);
f.setLocation(150,150);
f.setSize(300,300);
f.setVisible(true);
}
}
GridLayout布局管理器:以表格的形式进行管理的,必须设置行数和列数;
import javax.swing.JFrame;
import java.awt.GridLayout;
import javax.swing.JButton;
public class Demo{
public static void main(String args[]) throws Exception{
JFrame f=new JFrame("一个jframe");//创建一个容器
f.setLayout(new GridLayout(3,5,3,3));
JButton but=null;
for(int i=0;i<13;i++){
but=new JButton("按钮-"+i);
f.add(but);
}
f.setLocation(150,150);
f.pack();//根据组件自动创建容器的大小
f.setVisible(true);
}
}
CardLayout布局管理器:就是将一组组件彼此重叠的进行布局,就像一张张卡片一样,这样每次只会展现一个界面:
import javax.swing.JFrame;
import java.awt.CardLayout;
import java.awt.Container;
import javax.swing.JButton;
import javax.swing.JLabel;
public class Demo{
public static void main(String args[]) throws Exception{
JFrame f=new JFrame("一个jframe");//创建一个容器
CardLayout card=new CardLayout();
f.setLayout(card);
Container con=f.getContentPane();
con.add(new JLabel("标签-A",JLabel.CENTER),"first");
con.add(new JLabel("标签-B",JLabel.CENTER),"seconde");
con.add(new JLabel("标签-C",JLabel.CENTER),"third");
con.add(new JLabel("标签-D",JLabel.CENTER),"forth");
con.add(new JLabel("标签-E",JLabel.CENTER),"fifth");
f.setLocation(150,150);
f.pack();//根据组件自动创建容器的大小
card.show(con,"third");
f.setVisible(true);
for(int i=0;i<5;i++){
Thread.sleep(2000);
card.next(con);
}
}
}
4、决定定位:
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JLabel;
public class Demo{
public static void main(String args[]) throws Exception{
JFrame f=new JFrame("一个jframe");//创建一个容器
f.setLayout(null);
JLabel title=new JLabel("YUJ");
JButton ent=new JButton("进入");
JButton help=new JButton("帮助");
f.setSize(300,300);
title.setBounds(75,30,150,20);
ent.setBounds(30,60,100,20);
help.setBounds(140,60,100,20);
f.add(title);
f.add(ent);
f.add(help);
f.setVisible(true);
}
}
5、JPanel容器:
这也是常用的容器之一,可以使用JPanel完成各种复杂的界面显示,在JPanel中可以加入任意的组件,
之后将JPanel容器加入到JFrame容器中即可显示。
以前是直接向JFrame容器中加入组件,而现在是在JPanel中排列好,再将JPanel家入到JFrame中;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.JButton;
public class Demo{
public static void main(String args[]) throws Exception{
JFrame frame=new JFrame("JFRAME");
JPanel pan=new JPanel();
pan.add(new JLabel("标签-A"));
pan.add(new JLabel("标签-B"));
pan.add(new JLabel("标签-C"));
pan.add(new JButton("按钮-X"));
pan.add(new JButton("按钮-Y"));
pan.add(new JButton("按钮-Z"));
frame.add(pan);
frame.setSize(300,300);
frame.setLocation(400,200);
frame.setVisible(true);
}
}
在开发中可以使用JPanel完成一些复杂的界面设计。
6、JSplitPane“分割容器”
import javax.swing.JPanel ;
import javax.swing.JButton ;
import javax.swing.JLabel ;
import javax.swing.JFrame ;
import java.awt.Container ;
import javax.swing.JSplitPane ;
public class JSplitPaneDemo01{
public static void main(String args[]){
JFrame frame = new JFrame("Welcome TO MLDN") ; // 实例化窗体对象
Container cont = frame.getContentPane() ;
JPanel pan = new JPanel() ; // 准备好了一个面板
JSplitPane lfsplit = null ; // 左右分割
JSplitPane tpsplit = null ; // 上下分割
lfsplit = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,new JLabel("左标签"),new JLabel("右标签")) ;
lfsplit.setDividerSize(3) ; // 设置左右分割条的分割线大小
tpsplit = new JSplitPane(JSplitPane.VERTICAL_SPLIT,lfsplit,new JLabel("下标签")) ;
tpsplit.setDividerSize(10) ; // 设置左右分割条的分割线大小
tpsplit.setOneTouchExpandable(true) ;
cont.add(tpsplit) ;
frame.pack() ;// 根据组件自动调整大小
frame.setLocation(300,200) ;
frame.setVisible(true) ;
}
};
7、JTabbedPane容器:
import java.io.File ;
import java.awt.Container ;
import javax.swing.JPanel ;
import javax.swing.JButton ;
import javax.swing.ImageIcon ;
import javax.swing.JLabel ;
import javax.swing.JFrame ;
import javax.swing.JTabbedPane ;
public class JTabbedPaneDemo01 {
public static void main(String args[]){
JFrame frame = new JFrame("Welcome TO MLDN") ; // 实例化窗体对象
Container cont = frame.getContentPane() ;
JTabbedPane tab = null ;
tab = new JTabbedPane(JTabbedPane.TOP) ;// 设置标签在顶部显示
JPanel pan1 = new JPanel() ;
JPanel pan2 = new JPanel() ;
JButton but = new JButton("按钮") ;
JLabel lab = new JLabel("标签") ;
pan1.add(but) ;
pan2.add(lab) ;
String picPath = "d:" + File.separator + "logo.gif" ;
tab.addTab("图片选项",new ImageIcon(picPath),pan1,"图象") ;
tab.addTab("文字选项",pan2) ;
cont.add(tab) ;
frame.setSize(330,120) ;// 根据组件自动调整大小
frame.setLocation(300,200) ;
frame.setVisible(true) ;
}
};
8、JScollPane容器:
滚动面板:
import java.io.File ;
import java.awt.Container ;
import javax.swing.JPanel ;
import javax.swing.JButton ;
import javax.swing.ImageIcon ;
import javax.swing.Icon ;
import javax.swing.JLabel ;
import javax.swing.JFrame ;
import javax.swing.JScrollPane ;
public class JScrollPaneDemo01 {
public static void main(String args[]){
JFrame frame = new JFrame("Welcome TO MLDN") ; // 实例化窗体对象
Container cont = frame.getContentPane() ;
String picPath = "d:" + File.separator + "mldn.gif" ;
Icon icon = new ImageIcon(picPath) ; // 实例化Icon对象
JPanel pan = new JPanel() ;
JLabel lab = new JLabel(icon) ;
JScrollPane scr1 = null ;
// 设置垂直和水平的滚动条一直显示
scr1 = new JScrollPane(pan,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS ,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS) ;
pan.add(lab) ;
cont.add(scr1) ;
frame.setSize(230,120) ;// 根据组件自动调整大小
frame.setLocation(300,200) ;
frame.setVisible(true) ;
}
};
9、内部窗体:
659

被折叠的 条评论
为什么被折叠?



