java Swing圖形化界面

 

 

 

  學過java的人應該對java的圖形化界面非常反感,特別是接觸java不久的人。若是想和其餘語言那樣用鼠標拖拽,可使用wondosbulider插件。可是用起來也不是那麼方便。固然對於不樂意寫代碼的人來講真是太幸福了。java

  然而用代碼去實現java的圖形化界面並不是那麼麻煩。總結起來就是~ide

1.定義你須要使用的面板,按鈕,文本,標籤。佈局

2.對這些實例化。  而後把按鈕,文本,標籤按照你想要的方法放到面板上。測試

3.把面板放在界面上。  若是界面簡單的話,面板也是能夠不使用的,面板能夠方便管理一些按鈕。this

 

 

如何去簡單的添加一些按鈕那?spa

定義面板按鈕~實例化面板按鈕~將按鈕添加到面板上。插件

 

package Swing;
import java.awt.FlowLayout;
import java.awt.Frame;

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

public class FrameDemo extends JFrame {
    private JPanel jp,jp1;    //聲明面板,面板功能:可添加按鈕文本等,方便管理界面。
    private  JButton b1;   //聲明 按鈕
    private JButton b2,b3;    
    public FrameDemo  ()
    {
        super("測試窗口");
        jp = new JPanel();  
        b1 = new JButton("按鈕1");
        b2 = new JButton("按鈕2");//實例化 jp b1 b2 
        jp.add(b1);   
        jp.add(b2);
    
        
        this.add(jp);   //按鈕添加到面板,面板添加到界面。
        this.setSize(300,200);   //設定 窗口寬度300,高度200
        this.setLocation(100,100);  //設定窗口左上角座標,窗口打開時的位置。以左上定點爲0.0
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    public static void main(String[] args) {
         FrameDemo frame = new FrameDemo();
         frame.setVisible(true);
              
    }

}

    下面介紹幾個佈局,讓你的界面更加美觀code

流佈局~組建從左到右依次安排到面板上。也是默認佈局orm

 

package Swing;
import java.awt.FlowLayout;
import java.awt.Frame;

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

public class FrameDemo extends JFrame {
    private JPanel jp;    //聲明面板,面板功能:可添加按鈕文本等,方便管理界面。
    private  JButton b1;   //聲明 按鈕
    private JButton b2,b3,b4;    
    public FrameDemo  ()
    {
        super("測試窗口");
        jp = new JPanel(); //  先對面板實例化,再對面板進行佈局。      (左對齊,水平間距10,垂直間距15)可更改。
        FlowLayout layout = new FlowLayout(FlowLayout.LEFT,10,25);
        jp.setLayout(layout);
         
        b1 = new JButton("按鈕1");
        b2 = new JButton("按鈕2");
        b3 = new JButton("按鈕3");
        b4 = new JButton("按鈕4");
        jp.add(b1);   
        jp.add(b2);
        jp.add(b3);
        jp.add(b4);
        this.add(jp);   //按鈕添加到面板,面板添加到界面
        this.setSize(300,200);   //設定 窗口寬度300,高度200
        this.setLocation(100,100);  //設定窗口左上角座標,窗口打開時的位置。
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    public static void main(String[] args) {
         FrameDemo frame = new FrameDemo();
         frame.setVisible(true);
              
    }

}

執行結果blog

邊界佈局~有五個位置,東南西北中~默認爲中

package Swing;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Frame;

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

public class FrameDemo extends JFrame {
    private JPanel jp;    //聲明面板,面板功能:可添加按鈕文本等,方便管理界面。
    private  JButton b1;   //聲明 按鈕
    private JButton b2,b3,b4;    
    public FrameDemo  ()
    {
        super("測試窗口");
        jp = new JPanel(); //  先對面板實例化,再對面板進行佈局。      (左對齊,水平間距10,垂直間距15)可更改。
        jp.setLayout(new BorderLayout());
         
        b1 = new JButton("按鈕1");
        b2 = new JButton("按鈕2");//實例化 jp b1 b2 
        b3 = new JButton("按鈕3");
        b4 = new JButton("按鈕4");
        jp.add(b1,BorderLayout.WEST);   
        jp.add(b2,BorderLayout.WEST);    //按鈕2將按鈕1覆蓋, 未設置按鈕大小,按鈕會的長度會是面板的長度。
        jp.add(b3,BorderLayout.NORTH);
        jp.add(b4,BorderLayout.SOUTH);
        this.add(jp);   //按鈕添加到面板,面板添加到界面
        this.setSize(500,500);   //設定 窗口寬度500,高度500
        this.setLocation(100,100);  //設定窗口左上角座標,窗口打開時的位置。
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    public static void main(String[] args) {
         FrameDemo frame = new FrameDemo();
         frame.setVisible(true);
              
    }

}

注意,按鈕1被按鈕2覆蓋

網格佈局以及卡片佈局都是同樣的設置步驟,惟一改變的是佈局方式改變。只要依次添加組件,注意個組件的位置就能夠作好本身要求的界面。

我最喜歡的佈局~null空佈局。根據本身的意願在面板上隨意添加,可是容易形成佈局混亂。我將文本框,標籤,和按鈕放在null佈局中,標籤和文本框的放置方法和按鈕相同。

 

 

package Swing;
import java.awt.FlowLayout;
import java.awt.Frame;

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

public class FrameDemo extends JFrame {
    private JPanel jp;    //聲明面板,面板功能:可添加按鈕文本等,方便管理界面。
    private  JButton b1;   //聲明 按鈕
    private JButton b2,b3,b4;    
    private  JLabel lname ,lpwd;
    private JTextField txtname;
    private JPasswordField txtpwd;
     public FrameDemo  ()
    {
        super("測試窗口");
        jp = new JPanel();     
        jp.setLayout(null);         
        b1 = new JButton("登錄");    //對按鈕建立添加
        b2 = new JButton("取消");

        b1.setBounds(60, 90, 60, 25);
        b2.setBounds(125, 90, 60, 25);  
        jp.add(b1);   
        jp.add(b2);

        lname = new JLabel("用戶名");    // 對標籤建立添加
        lpwd = new JLabel("密碼");
        txtname = new JTextField(20);
        txtpwd = new JPasswordField(20);
        txtpwd.setEchoChar('*');
        
        lname.setBounds(30,30,60,25);
        txtname.setBounds(95, 30, 120, 25);
        lpwd.setBounds(30,60,60,25);
        txtpwd.setBounds(95,60,120,25);
        
        jp.add(lname);
        jp.add(txtname);
        jp.add(lpwd);
        jp.add(txtpwd);
        
        this.add(jp);   //按鈕添加到面板,面板添加到界'
        this.setSize(250,170);   
        this.setLocation(300,300);  //設定窗口左上角座標,窗口打開時的位置。
        this.setResizable(false);//窗口不可改變大小
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    public static void main(String[] args) {
         FrameDemo frame = new FrameDemo();
         frame.setVisible(true);
              
    }

}

 

 

是否會本身按裝一些組件了那?複選框的添加步驟也是同樣的,可是要注意多設置些面板,用以管理各個複選框的標籤等。

相關文章
相關標籤/搜索