JavaSE_Vibatalk專案開發_part1

首先我們已有 Server(服務器)端軟件需先開啟的,
然後才能在Client(客戶)端指定服務器(Server)的IP這個基本觀念了。


我們又可以稱之為「C/S」


我們會用到下列技術

(1)File I/O
(2)GUI(AWT、Swing)
(3)Socket
(4)多線程
(5)JDBC(數據庫操作)---->這裡先暫時不用  我們用簡單的文件輸出入來替代




*主要功能
(1)用戶登陸 (介面  --->用到 GUI)
(2)用戶登陸驗證(用戶名、密碼輸入有沒有問題---->用到File )
(3)網路聊天(用到 Socket)


任務1
我們要來完成  登陸介面



首先
介面的分析

我們以  【噗很大】這個例子 來做說明





我們要先以server端為主

我要設計一個  叫做  「Vibatalk」的聊天室軟件
































































































Java API 中有兩個套件,分別是 AWT 與 Swing ,兩者都可以製作圖形介面的程式。


 AWT 為 Abstract Window Toolkit 的縮寫詞,
這是 Java 1.1 版之前官方程式庫 (libiary) 提供的套件 (package)
--->調用系統的  (會用系統的圖標、....)看起來較為呆版、死板


後來 1.2 版以後又採納 Swing 當第二個官方 GUI 的程式庫。
---->自定義的(Ex: QQ 經過美化的 介面)






AWT 在 java.awt 套件中

import java.awt.*;

Swing 在 javax.swing 套件裡

import javax.swing.*;





我們在此利用   Swing  來完成  我們的  軟件

JFrame類別是最常被使用到的Swing元件
幫助開發者建立 視窗框架







我們先讓容器可以顯示出來



























第一步要先談出一個窗口
你可能要先定義這個視窗介面的寬度  和  高度

在此   this 是個容器(代表當前對象 / 代表使用中的類別)











寫完我們要測試   我們就在  main 進入點  的  block  添加一個  測試方法

public void setVisible(boolean b)
設定是否顯示視窗框架  ---->   繼承自 java.awt.Complement













事件裡捨麼都沒寫
沒寫    調用他也就捨麼都不做




























第一階段code
顯示空窗口

package com.viba.ui;
import javax.swing.JFrame;
public class Client_Login_UI extends JFrame{
    private Client_Login_UI()
    {
        init();
        addComponent();
        addListener();
        showFrame();
    }    
    //Step1.首先有各種組件要做初始化    
    private void init()
    {
        
    }
    //Step2.把各種組件在該方法中進行組裝
    private void addComponent()
    {
        
    }
    //Step3.加事件功能
    private void addListener()
    {
        
    }
    //Step4.顯示窗口組件
    private void showFrame()
    {
        //第一步彈出一個空窗口配置寬、高
        this.setSize( 400 , 350);
        this.setVisible(true);
    }
    public static void main(String[] args)
    {
        new Client_Login_UI();
    }
}



注意!!!!   當你關閉了視窗之後  會發現

程式仍在執行 (紅色填滿方塊)































JFrame  沒加事件也有關閉的功能  但為 假的 關閉

因此我們需要添加   關閉視窗的事件(Close Event)













就可修正關閉窗口的小瑕疵

如何調整視窗置中顯示

將 螢幕的寬度  、  高度  除以2  再分別減去 視窗  寬度及高度除以2





















效果示意



第二階段code
將窗口置中並修正關閉瑕疵



package com.viba.ui;
import javax.swing.JFrame;
public class Client_Login_UI extends JFrame{
    private Client_Login_UI()
    {
        init();
        addComponent();
        addListener();
        showFrame();
    }    
    //Step1.首先有各種組件要做初始化    
    private void init()
    {
        
    }
    //Step2.把各種組件在該方法中進行組裝
    private void addComponent()
    {
        
    }
    //Step3.加事件功能
    private void addListener()
    {
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    //Step4.顯示窗口組件
    private void showFrame()
    {
        //讓窗口在螢幕正中間彈出
        int screenWidth = (int) this.getToolkit().getScreenSize().getWidth();
        int screenHeight = (int) this.getToolkit().getScreenSize().getHeight();
        int x = (screenWidth/2 - 500/2);
        int y = (screenHeight/2 -400/2);
        this.setLocation(x,y);
        //this.setLocation(250,200);
        
        //第一步彈出一個空窗口配置寬、高
        this.setSize( 500 , 400);
        //(setSize(width ,height );
        this.setVisible(true);
    }
    public static void main(String[] args)
    {
        new Client_Login_UI();
    }
}


接著你又會開始問了
問說  我們要怎麼加入  圖片呢??


























素材資源要做好歸類



















把圖片素材  拖拉方式  加進   剛創建好的  images folder

private ImageIcon logoLogo = null ;  //  定義一個圖像組件(宣告)



ImageIcon  幫助我們載入圖片


效果:



本次教學分享到此


留言

這個網誌中的熱門文章

何謂淨重(Net Weight)、皮重(Tare Weight)與毛重(Gross Weight)

Architecture(架構) 和 Framework(框架) 有何不同?_軟體設計前的事前規劃的藍圖概念

經得起原始碼資安弱點掃描的程式設計習慣培養(五)_Missing HSTS Header