1. 程式人生 > >【Java GUI】圖形使用者介面總結(1)

【Java GUI】圖形使用者介面總結(1)

一、簡單視窗的顯示

import java.awt.Color;
import java.awt.Container;
import java.awt.Label;

import javax.swing.*;

public class SwingWindow extends JFrame{
    Label label;//視窗內部的字本質是label;
    public SwingWindow(){
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //關閉程序,上次在貪吃蛇裡說過;
        setTitle("簡單視窗"
);//左上角視窗名字 setSize(400,400);//視窗大小,JFrame裡是setSize() label = new Label("簡單視窗例項");//label內容初始化; Container myCP = getContentPane(); //用來獲得JFrame的內容面板; myCP.add(label);//新增元件到容器; myCP.setBackground(Color.orange);//設定面板背景顏色 } public static void main(String arg[]) { SwingWindow mywin = new
SwingWindow(); mywin.setVisible(true);//顯示視窗 } }

執行結果

這裡寫圖片描述

Swing軟體包中包含了實現GUI的所有元件,從功能上可以分為頂層容器和Swing元件。
(1)頂層容器有三種:
JFrame(設計視窗應用程式);
JDialog(設計實現對話方塊);
JApplet(設計可以嵌入在網頁中的Java小程式);
(2)元件分為容器元件和非容器元件:
容器元件:面板(panel)等;
非容器元件:JLabel,JButton等;
容器元件必須放在頂層容器中,非容器元件可以通過三部曲放在元件容器中:

JPanel panel = new JPanel();
JLabel label = new JLabel();
panel.add(label);

二、基本元件的應用

(自定義是在太麻煩了,非必要直接用邊佈局吧)

package GUI;

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.*;

import javax.swing.*;

public class SwingWindow extends JFrame{
    public SwingWindow(){
        setLayout(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setTitle("歷亂");
        setSize(640,480);
        Container myCP = getContentPane();
        //注意:設定訪問許可權應該在構造外面定義變數,
        //在構造方法內一次性完成初始化和定義的話,訪問修飾符無意義;
        JTextArea baseText = new JTextArea();
        JTextArea copyText = new JTextArea();
        JScrollPane sp1,sp2;
        baseText.setLineWrap(true);
        copyText.setLineWrap(true);
        sp1 = new JScrollPane(baseText);
        sp1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
        sp2 = new JScrollPane(copyText);
        sp2.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);

        JLabel label = new JLabel("李智恩小仙女");
        JLabel username = new JLabel("使用者名稱:");
        JLabel password = new JLabel("密碼:");
        JTextField displayText = new JTextField(30);
        JTextField inputname = new JTextField("請輸入使用者名稱");
        inputname.addActionListener(new ActionListener(){

            public void actionPerformed(ActionEvent e) {
                if(e.getSource() == inputname)
                    displayText.setText("使用者名稱:"+inputname.getText());
            }

        });
        JPasswordField inputpwd = new JPasswordField();
        inputpwd.addActionListener(new ActionListener(){

            public void actionPerformed(ActionEvent e) {
                    if(e.getSource() == inputpwd)
                        displayText.setText("密碼:"+new String(inputpwd.getPassword()));
            }

        });
        JButton btn = new JButton("確認");
        btn.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e) {
                //按鈕事件
            }

        });
        sp1.setBounds(60, 300, 200, 200);
        sp2.setBounds(300, 300, 200, 200);
        username.setBounds(60, 100, 60, 20);
        password.setBounds(60, 150, 50, 20);
        inputpwd.setBounds(100, 150, 200, 20);
        inputname.setBounds(100, 100, 100, 20);
        displayText.setBounds(100, 200,300,20);
        label.setBounds(600, 400, 100, 20);
        btn.setBounds(600,450,80,20);
        myCP.add(label);
        myCP.add(btn);
        myCP.add(inputname);
        myCP.add(inputpwd);
        myCP.add(username);
        myCP.add(password);
        myCP.add(displayText);
        myCP.setBackground(Color.pink);
        myCP.add(sp1);
        myCP.add(sp2);
}
    public static void main(String arg[])
    {
        SwingWindow mywin = new SwingWindow();
        mywin.setVisible(true);
    }
}

這裡寫圖片描述

相關推薦

Java GUI圖形使用者介面總結1

一、簡單視窗的顯示 import java.awt.Color; import java.awt.Container; import java.awt.Label; import javax.swing.*; public class SwingWin

Java GUI圖形使用者介面總結2

一、關於佈局管理器: package Layout; import java.awt.*; import javax.swing.*; public class BorderLayoutEx extends JFrame{ privat

.net開發者自學java系列使用Eclipse開發SpringMVC1

領域驅動設計 cuc HR 代碼 swagger cli FQ bdd http 第一篇隨筆,有點緊張。有錯別字是正常的。。。。 好了,自我描述下。我是一個有幾年.net開發經驗的老菜鳥。是的,老菜鳥。別跟我討論底層,別跟我討論協議。TMD啥都不會。 為什麽要學JAVA,我

Prince2科普Prince2的七大原則1

步驟 哪些 來看 產品 論證 img .com 驗證 mil 經過前幾講中關於PRINCE2六大要素,四大步驟及整體思維架構的學習,相信各位看官已經對於PRINCE2有了大概的了解,那我們今天的學習內容會正式進入到七大原則內容的分享。 我們先來看一下,PRINCE

《實戰Java高併發程式設計》學習總結1

第1章 走入並行世界 1 併發(Concurrency)和並行(Parallelism)都可以表示兩個或多個任務一起執行。但併發偏重於多個任務交替執行,而多個任務之間有可能還是序列。並行是真正意義上的“同時執行”。 2 有關並行的兩個重要定律。Amdahl定律強調當序列比例一定時,加速比是有

資料結構順序表的應用1

 問題: 1.將順序表(a1,a2,…,an)重新排列以a1為界的兩部分:a1前面的值均比a1小,a1後面的值均比a1大(這裡假設資料元素的型別具有可比性,不妨設為整型)。 #include "

LaTeX入門12、參考文獻1

    你在寫一篇論文,論文要求“根據引用文獻的順序對參考文獻進行編號”,目前你的參考文獻有文章 A(當前編號為1),文章 B(當前編號為2),文章 C(當前編號為3) 這三篇文獻,文章中有50處引用了文章A,20處引用了文章B,10處引用了文章C,這時候你發現在文章開頭需要引用一篇文章D,而這時就意味著你需

學習opencv實現霍夫變換1檢測直線

目前想對於霍夫圓檢測進行修改,想法是若能在固定圓心的橫座標的情景下去搜索圓,若要實現就需要對霍夫檢測有一定的深入瞭解。 霍夫變換原理 霍夫變換原理實則就是引數空間的轉變。 極座標轉換 首先因為直角座標系中垂直於x軸的直線不存在,即轉換用極座標表示

TensorFlow實戰3.MNIST數字識別1

  目前用的時TensorFlow1.8版本,python3.5,跑書上的例子會出問題,並且書上的程式碼存在一處錯誤,下面的程式碼時我親測可用的。 import tensorflow as tf from tensorflow.examples.tutorials.mnis

Java面試題,每日一總結1

Java的跨平臺原理 答:因為不同的作業系統支援的指令集不完全一致,因此在不同的作業系統上就需要執行不同的Java程式碼。 Java為了應對這種情況,就針對不同系統,不同版本,不同位數的作業系統開發了對應的Java虛擬機器(JVM),來遮蔽系統之間的差異,提供統一的介面(

java程式圖形面積和周長計算

package test1; import java.util.Scanner; class circle{ double r,a,b,h; public double zfx(double a) {

Java.NIOAPI —— Channel介面

Java NIO的通道類似流stream,但又有些不同: 既可以從通道中讀取資料,又可以寫資料到通道。但流的讀寫通常是單向的通道可以非同步地讀寫通道中的資料總是先讀到一個Buffer,或者總是要從一個Buffer中寫入Channel用於在位元組緩衝區和位於Channel另

java reflection反射工具類總結

這段時間公司搞封閉開發,做一個聯通總部的客服系統專案,是基於springboot的。在開發工程中遇到一個頁面datagrid資料排序的功能,因為有多個表的資料都要用到排序功能,於是我就寫了一個排序功能的公共實現類,方便大家使用。在寫實現類的過程中需要通過反射去呼

kinetic操作系統探索總結鍵盤控制

仿真 world spa projects long variables anon image rec 如果嘗試過前面的例子,有沒有感覺每次讓機器人移動還要在終端裏輸入指令,這也太麻煩了,有沒有辦法通過鍵盤來控制機器人的移動呢?答案室當然的了。我研究了其他幾個機器人鍵盤控制

電路差分介面互連

 差分輸入  The high-speed digital inputs (DATA0/NDATA0,RCV0/NRCV0, DATA1/NDATA1, and RCV1/NRCV1) are intended for use with a high-speed di

電路差分介面互連

 LVDS介面型別  一種是HR bank的LVDS_25,Vcco=2.5V,也就是通常說的LVDS介面。 The LVDS_25 I/O standard is only available in the HR I/O banks. It requires a VCC

ForOffer面試題基礎總結3

介面是不能例項化的,但是可以例項化介面的類的物件。比如 Map m = new hashMap()。 什麼是執行緒?與程序有什麼區別?為什麼要使用多執行緒? 執行緒是一個程度執行過程中,能夠執行程式程式碼的一個執行單元。有四種狀態:執行,掛起,就緒,結

資料結構與演算法-java實現二 複雜度分析:最好、最壞、平均、均攤時間複雜度的概念

上一篇文章學習了:如何分析、統計演算法的執行效率和資源消耗? 點選連結檢視上一篇文章:複雜度分析上 今天的文章學習以下內容: 最好情況時間複雜度 最壞情況時間複雜度 平均情況時間複雜度 均攤時間複雜度 1、最好與最壞情況時間複雜度 我們首先

軟考篇--軟考知識點總結

        軟考到現在準備工作也做的差不多了,在做選擇題的過程中,發現了一些自己的薄弱點,總是愛出錯的幾個點, 這裡稍微進行一下總結。        編譯程式和解釋程式        編譯程式

libeventlibevent庫學習總結——程式設計步驟

一、libevent程式設計步驟 0、分配並初始化event_base,兩種方法 0.1 event_base_new:執行緒安全,代替event_init; 0.2 event_init:執行緒不安全,不推薦使用,僅僅是為了向後相容 1、建立event