1. 程式人生 > >JAVA圖形介面總結1

JAVA圖形介面總結1

因為最近課設需要,所以就學習了一些,先總結一點

一.所要總結的知識點:

1.控制元件的正確擺放姿勢.
2. java圖形中常用的控制元件.
3.如何給JPanel,JLabel,JButton中新增背景圖片
4.列表選擇框JComboBox,JList
5.給面板或者控制元件設定炫酷邊框

二.逐一介紹:

1. java圖形中常用的控制元件

  • 常用窗體:JFrame、JDialog。窗體好比一塊空白的畫布,你可以任意新增按鈕等元件到其中,也可以設定窗體的屬性(大小、邊界、排布等)。JFrame是一個主窗體,在一個專案中只能有一個。而JDialog 窗體是Swing元件中的對話方塊,它繼承了AWT元件中java.awt.Dialog類,彈出新窗體。有點像彈出對話方塊。
  • 按鈕:JButton
  • 標籤類:JLabel。JLabel 物件可以顯示文字、影象或同時顯示二者。可以通過設定垂直和水平對齊方式,指定標籤顯示區中標籤內容在何處對齊。
構造方法介紹:
JLabel() 建立無影象並且其標題為空字串的 JLabel。
JLabel(Icon image) 建立具有指定影象的 JLabel 例項。
JLabel(Icon image, int horizontalAlignment) 建立具有指定影象和水平對齊方式的 JLabel 例項。
JLabel(String text) 建立具有指定文字的 JLabel 例項。
JLabel(String text
, Icon icon, int horizontalAlignment) 建立具有指定文字、影象和水平對齊方式的 JLabel 例項。 JLabel(String text, int horizontalAlignment) 建立具有指定文字和水平對齊方式的 JLabel 例項。
  • 文字框和文字區框和密碼輸入框:JTextField和JTextArea和JPasswordField。

    **一:JTextField的(文字框)使用:**
    JTextField 是一個輕量級元件,它允許編輯單行文字。
    1.JTextField的常用構造方法:
    JTextField() 構造一個新的 TextField。
    JTextField(int
    columns) 構造一個具有指定列數的新的空 TextField。 JTextField(String text) 構造一個用指定文字初始化的新TextField。 JTextField(String text, int columns) 構造一個用指定文字和列初始化的新TextField。 2.JTextField的常用方法: SetText(string) 設定文字域中的文字值 GetText()返回文字域中的輸入文字值 getColumns()返回文字域的列數 setEditable(Boolean) 設定文字域是否為只讀狀態 **二.JTextArea的常用構造方法:** JTextArea() 構造新的 TextArea。 JTextArea(String text) 構造顯示指定文字的新的 TextArea。 JTextArea(int rows, int columns) 構造具有指定行數和列數的新的空 TextArea。 JTextArea(String text, int rows, int columns) 構造具有指定文字、行數和列數的新的 TextArea。
  • 列表選擇框:JComboBox,JList。JComboBox是下拉列表框,JList是將列表的資訊都顯示出來,也可以用 JScrollPane來將它設定為可滾動的模式.因為這兩個控制元件的方法都是相同的,這裡我只列出一個.
    這裡寫圖片描述
    舉個JComboBox例子
    String []yt = new String[12];
    String yta = “號演出廳”;
    for(int i = 0; i<12; i++)
    {
    String a = String.valueOf(i+1);
    String b = a + yta;
    yt[i] = b;
    }
    JComboBox jbox = new JComboBox(yt);

2.控制元件的正確擺放姿勢.
關於JavaGUI中控制元件的擺放有兩種方式,第一種是通過一些佈局的框架:如,流式佈局FlowLayout,表格佈局GridLayout,邊界BorderLayout。卡片佈局 CardLayout,這幾種佈局我在這不做介紹,具體可參考部落格
(http://blog.csdn.net/u012566693/article/details/44916069)
第二種方式是通過控制元件的絕對佈局,每一個控制元件都有setBounds(x, y, width, height)方法,其中x和y代表該控制元件在父控制元件的水平和豎直距離,後兩個分別代表該控制元件的寬和高.使用絕對佈局,你建立面板的時候必須將面板的佈局設定為空如,JPanel p = new JPanel(); p.setLayou(null);,因為面板的預設佈局為流式佈局,這樣你就不能使用絕對佈局.
我個人覺得擺放控制元件最簡單的方式就是用絕對佈局,這樣可以精準控制控制元件的位置.
這裡寫圖片描述

3.如何給JPanel,JLabel,JButton中新增背景圖片

  • 1:JPanel:先定義一個面板的類,然後通過構造方法來建立一個具體大小和背景圖片的面板.
    import javax.swing.*;
    import java.awt.*;
    class GetPanel extends JPanel {
    private static final long serialVersionUID = 1L;
    int width = 0, hight = 0;
    String imgpath = “”;
    public GetPanel(int width, int hight, String file) {
    this.width = width;
    this.hight = hight;
    imgpath = file;
    }
    protected void paintComponent(Graphics g) {
    ImageIcon icon = new ImageIcon(imgpath);
    Image img = icon.getImage();
    g.drawImage(img, 0, 0, width, hight, this);
    }
    }

    JPanel p= new GetPanel(650,300,”/Ttms/image/12.png”);
    p.setLayout(null);

  • JLabel和JButton一樣:有兩種方式,第一種是在定義的時候設定背景圖,第二種是在定義之後設定,這裡只列出JLabel;
    1:JLabel l = new JLabel(new ImageIcon(“/Ttms/image/5t.png”));
    2:JLabel l = new JLabel();
    l.setIcon(new ImageIcon(“/Ttms/image/5t.png”));