Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > Java Programming > Java GUI สอน Java GUI เขียนโปรแกรม GUI ด้วย Java(Swing/AWT/JFC) > รู้จักกับ Java กับ JFrame เครื่องมือหลักในการสร้าง GUI Window Form ด้วย JFrame



Clound SSD Virtual Server

รู้จักกับ Java กับ JFrame เครื่องมือหลักในการสร้าง GUI Window Form ด้วย JFrame

รู้จักกับ Java กับ JFrame เครื่องมือหลักในการสร้าง GUI Window Form ด้วย JFrame ในการสร้าง Form แบบ GUI บน Java สิ่งที่เราจะได้พบเห็นกันอยู่คือ JFrame สำหรับ JFrame เป็น Class หลักที่นิยมนำมาใช้สร้าง Form กรอบที่เป็น Window ซึ่งหลังจากที่เราสร้าง Form ด้วย JFrame แล้ว เราจะสามารถออกแบบส่วนประกอบรายละเอียดของ GUI พวก Component Control การจัดวาง Layout ต่าง ๆ วางใน Frame ได้ตามต้องการ ในการใช้ Frame สามารถใช้ได้ทั้งของ AWT (java.awt.Frame) แต่อยากจะแนะนำให้ใช้ของ Swing JFrame (javax.swing.JFrame) เพราะได้รับความนิยม และสามารถใช้งานได้ง่าย พร้อม ๆ กับมีคุณสมบัติอื่น ๆ ที่ดีกว่า AWT พอสมควร

สำหรับการสร้าง Form ด้วย JFrame สามารถเริ่มต้นด้วยการ import ตัว Class ของ javax.swing.JFrame

import javax.swing.JFrame;

ทำการ import ตัว Class ของ JFrame จากนั้นใน Class ก็สามารถเรียกใช้ด้วยการ new JFrame ขึ้นมาได้ทันที

Example 1 ตัวอย่างการสร้าง JFrame แบบง่าย ๆ

package com.java.myapp;

import javax.swing.JFrame;

public class  MyClass {
	
    public static void main(String[] args) {
        JFrame frame = new JFrame("A JFrame");
        frame.setSize(250, 250);
        frame.setLocation(300,200);
        frame.setVisible(true);
    }
    
}

Output

Java GUI JFrame

ตัวอย่างที่ได้

แต่ปกติแล้วการสร้าง JFrame เป็น Frame หลักจะนิยมใช้การ extends หรือ inheritance เข้ามาใน Class หลัก และการ extends ตัว Class ของ JFrame นั้น ในการเรียกใช้งานจะต้องประกาศ Class แบบ Contractor initial คือ หลังจากที่ Class ถูกเรียกใช้จะต้องมีการ Assign ค่าบางอย่างที่จำเป็นสำหรับการสร้าง Form

Example 2 ตัวอย่างการสร้าง JFrame ผ่านการ extends inheritance ตัว Class ของ JFrame

package com.java.myapp;

import javax.swing.JFrame;
import javax.swing.JLabel;

public class MyClass extends MyClass {

	public static void main(String[] args) {
		MyClass frame = new MyClass();
		frame.setVisible(true);
	}

	public MyClass() {

		// JFrame Property
		super("ThaiCreate.Com Tutorial Java GUI"); // Title
		setSize(300, 200);
		setLocation(500, 280);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		getContentPane().setLayout(null);

		// Text Label
		JLabel welcome = new JLabel("Welcome to ThaiCreate.Com");
		welcome.setBounds(70, 50, 164, 60);
		getContentPane().add(welcome);

	}

}

Output

Java GUI JFrame

ซึ่งในตัวอย่างที่ 2 จะได้รับความนิยมมากกว่า

จากทั้ง 2 ตัวอย่าง ในการสร้าง Form หรือ Frame หลักก็มีเพีงง่าย ๆ เท่านี้ จากนั้นถ้าเราต้องการสร้างพวก Component Controls ต่าง ๆ ก็สามารถจัดวางได้จากเหมือนกับในตัวอย่าง แต่ถ้าในกรณีทำผ่าน Visual GUI บน Eclipse หรือ Netbeans พวก Code เหล่านี้เราจะไม่ต้องมาเขียนเองให้ยุ่งยากเลย เพราะหลังจากที่เราออกแบบ GUI ผ่าน Visual จะมีการ Generate Code ของ Java มาให้อัตโนัมัติ








Example 3 การสร้าง GUI Form ด้วยโปรแกรม Netbeans IDE

Java GUI JFrame

คลิกขวาที่ Package เลือก New -> JFrame Form

Java GUI JFrame

ตั้งชื่อ Class และรายละเอียดอื่น ๆ

Java GUI JFrame

จะเห็นว่าใน GUI เรามองเป็น Visual Designer มีพวก Component Controls ต่าง ๆ ให้เราเลือกใช้ได้ตามสบาย และสามารถสลับมุมมองได้จาก Code และ Design

Java GUI JFrame

ทดสอบการรันได้ผลลัพธ์ดังรูป ทั้ง ๆ ที่เรายังไม่ได้เขียน Code เลย

Java GUI JFrame

เพิ่มเติมในกรณีที่ Form ย่อเป็นเล็ก ๆ ดังรูป

Java GUI JFrame

ปรับแต่งที่ Form -> Code -> Generate Resize Code

และจากที่เราใช้ Tools โปรแกรมจะ Genreate ตัว Code ให้ดังนี้

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.java.myapp;

/**
 *
 * @author WEERACHAI
 */
public class MyFormFirst extends javax.swing.JFrame {

    /**
     * Creates new form MyFormFirst
     */
    public MyFormFirst() {
        initComponents();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 400, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 300, Short.MAX_VALUE)
        );

        pack();
    }// </editor-fold>                        

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(MyFormFirst.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(MyFormFirst.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(MyFormFirst.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(MyFormFirst.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new MyFormFirst().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify                     
    // End of variables declaration                   
}


ซึ่งจะเห็นว่า Code ถูก Generate ขึ้นมามากมายจากโปรแกรม และบางอย่างก็ไม่มีความจำเป็น แต่ไม่แนะนำให้ทำการแก้ไข และในบางส่วนของ Code ที่เป็น Auto Generate Code โปรแกรม Netbeans จะไม่ให้เราแก้ไขได้อยู่แล้ว แต่จะสามารถเขียนเพิ่มได้เฉพาะในส่วนเท่านั้น








อ่านเพิ่มเติม

การปรับแต่ง JFrame พื้นฐาน เช่น Title / Maximum Window / Change Icon

พื้นฐานการสร้าง Controls บน GUI และการสร้าง Action Event Handler ให้กับ Control


   
Share


ช่วยกันสนับสนุนรักษาเว็บไซต์ความรู้แห่งนี้ไว้ด้วยการสนับสนุน Source Code 2.0 ของทีมงานไทยครีเอท


ลองใช้ค้นหาข้อมูล


   


Bookmark.   
       
  By : ThaiCreate.Com Team (บทความเป็นลิขสิทธิ์ของเว็บไทยครีเอทห้ามนำเผยแพร่ ณ เว็บไซต์อื่น ๆ)
  Score Rating :  
  Create/Update Date : 2013-08-18 17:53:35 / 2017-03-27 17:08:30
  Download : No files
 Sponsored Links / Related

 
การปรับแต่ง JFrame เช่น Title/Resizable/Maximum Window/Change Icon (Java)
Rating :

 
พื้นฐาน Java สร้าง Controls บน GUI และการสร้าง Action Event Handler กับ Controls
Rating :

 
พื้นฐานการสร้าง GUI Window Form ที่ประกอบด้วย 2 Form และการ Open Form (Java)
Rating :

 
พื้นฐาน Form การสร้าง Dialog MessageBox บน Java GUI เพื่อโต้ตอบกับผู้ใช้
Rating :

 
พื้นฐาน Form และ GUI : JTextField , JLabel , JButton เพื่อรับข้อมูลและแสดงข้อมูล
Rating :

 
พื้นฐาน Java GUI : Dialog และ Popup สร้าง Input Dialog และ Custom Modal Dialog
Rating :


ThaiCreate.Com Forum


Comunity Forum Free Web Script
Jobs Freelance Free Uploads
Free Web Hosting Free Tools

สอน PHP ผ่าน Youtube ฟรี
สอน Android การเขียนโปรแกรม Android
สอน Windows Phone การเขียนโปรแกรม Windows Phone 7 และ 8
สอน iOS การเขียนโปรแกรม iPhone, iPad
สอน Java การเขียนโปรแกรม ภาษา Java
สอน Java GUI การเขียนโปรแกรม ภาษา Java GUI
สอน JSP การเขียนโปรแกรม ภาษา Java
สอน jQuery การเขียนโปรแกรม ภาษา jQuery
สอน .Net การเขียนโปรแกรม ภาษา .Net
Free Tutorial
สอน Google Maps Api
สอน Windows Service
สอน Entity Framework
สอน Android
สอน Java เขียน Java
Java GUI Swing
สอน JSP (Web App)
iOS (iPhone,iPad)
Windows Phone
Windows Azure
Windows Store
Laravel Framework
Yii PHP Framework
สอน jQuery
สอน jQuery กับ Ajax
สอน PHP OOP (Vdo)
Ajax Tutorials
SQL Tutorials
สอน SQL (Part 2)
JavaScript Tutorial
Javascript Tips
VBScript Tutorial
VBScript Validation
Microsoft Access
MySQL Tutorials
-- Stored Procedure
MariaDB Database
SQL Server Tutorial
SQL Server 2005
SQL Server 2008
SQL Server 2012
-- Stored Procedure
Oracle Database
-- Stored Procedure
SVN (Subversion)
แนวทางการทำ SEO
ปรับแต่งเว็บให้โหลดเร็ว


Hit Link
   







Load balance : Server 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่