24---awt和swing01(简介)

 

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、内部窗体:
 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值