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

Registered : 107,810

HOME > Java Programming > Java GUI สอน Java GUI เขียนโปรแกรม GUI ด้วย Java(Swing/AWT/JFC) > How to use : Java GUI Create Menu and Open Another Panel Layout





Clound SSD Virtual Server

How to use : Java GUI Create Menu and Open Another Panel Layout

How to use : Java GUI Create Menu and Open Another Panel Layout บทความนี้ถือว่าเป็นสุดยอด Java GUI และการสร้าง Menu Bar เราจะประยุกต์ใช้ Menu กับ Layout ของ Panel โดยการสร้าง Frame หลักเป็นเหมือนหน้า Index ของ Application จากนั้นจะสร้าง Menu มาเพื่อเรียก Layout ทีอยู่ใน Panel ของ Class ต่าง ๆ มาแสดงใน Frame หลัก ซึ่งการออกแบบในรูปแบบนี้จะช่วยให้โปรแกรมทำงานอยู่ใน Frame เดียวตลอด เพียงแต่มีการเรียก Layout จากส่วนต่าง ๆ มาแสดงตามเงื่อนไขที่เราเขียนขึ้น

Java GUI Create Menu and Open Another Panel Layer

How to use : Java GUI Create Menu and Open Another Panel Layout


Syntax
PanelFrame panel = new PanelFrame();
panel.setBorder(BorderFactory.createTitledBorder("Panel"));
getContentPane().removeAll();
getContentPane().add(panel, BorderLayout.CENTER);
getContentPane().doLayout();


Java GUI Create Menu and Open Another Panel Layer

เลือกสร้าง Class ใหม่แบบ JPanel

Java GUI Create Menu and Open Another Panel Layer

ประกอบด้วย 5 ไฟล์คือ
  • MyForm.java เป็นไฟล์หลักหรือ Frame หลักสำหรับแสดงหน้า GUI
  • PanelMain.java เป็น Layout หลักเปรียบเสมือนหน้า Home
  • PanelFrame1.java เป็น Layout เมื่อคลิก Menu 1
  • PanelFrame2.java เป็น Layout เมื่อคลิก Menu 2
  • PanelFrame3.java เป็น Layout เมื่อคลิก Menu 3


Example ตัวอย่างการสร้าง Menu และการเรียก Layout จากไฟล์ Class อื่น ๆ มาแสดงใน Frame หลัก

MyForm.java
package com.java.myapp;

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;

public class MyForm extends JFrame {

	static JPanel MainPanel;
	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				MyForm frame = new MyForm();
				frame.setVisible(true);
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public MyForm() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 508, 375);
		setTitle("ThaiCreate.Com Java GUI Tutorial");
		
		getContentPane().add(new PanelMain()); // Load Panel Main
		
		// Menu Bar
        JMenuBar menuBar=new JMenuBar();
        
        // Main Menu
        JMenu menuMain = new JMenu("File");
        
        // Panel 1
        JMenuItem menu1 = new JMenuItem("Menu 1 - Panel 1");
        menu1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent event) {
            	PanelFrame1 panel1 = new PanelFrame1();
            	panel1.setBorder(BorderFactory.createTitledBorder("Panel 1"));
                getContentPane().removeAll();
                getContentPane().add(panel1, BorderLayout.CENTER);
                getContentPane().doLayout();
            }
        });
        
        // Panel 2
        JMenuItem menu2 = new JMenuItem("Menu 2 - Panel 2");
        menu2.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent event) {
            	PanelFrame2 panel2 = new PanelFrame2();
            	panel2.setBorder(BorderFactory.createTitledBorder("Panel 2"));
                getContentPane().removeAll();
                getContentPane().add(panel2, BorderLayout.CENTER);
                getContentPane().doLayout();
            }
        });
        
        // Class 3
        JMenuItem menu3 = new JMenuItem("Menu 3 - Panel 3");
        menu3.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent event) {
            	PanelFrame3 panel3 = new PanelFrame3();
            	panel3.setBorder(BorderFactory.createTitledBorder("Panel 3"));
                getContentPane().removeAll();
                getContentPane().add(panel3, BorderLayout.CENTER);
                getContentPane().doLayout();
            }
        });
        
        menuMain.add(menu1);
        menuMain.add(menu2);
        menuMain.add(menu3);
        menuBar.add(menuMain);

        
        setJMenuBar(menuBar);
	}
	

}









Java GUI Create Menu and Open Another Panel Layer

PanelMain.java
package com.java.myapp;

import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import java.awt.Font;

public class PanelMain extends JPanel {

	/**
	 * Create the panel.
	 */
	public PanelMain() {
		setLayout(null);
		
		JLabel lblPanelMain = new JLabel("Panel Main");
		lblPanelMain.setFont(new Font("Tahoma", Font.PLAIN, 20));
		lblPanelMain.setHorizontalAlignment(SwingConstants.CENTER);
		lblPanelMain.setBounds(105, 110, 239, 31);
		add(lblPanelMain);

	}
}


Java GUI Create Menu and Open Another Panel Layer

PanelFrame1.java
package com.java.myapp;

import javax.swing.JPanel;
import javax.swing.JLabel;
import java.awt.Font;
import javax.swing.SwingConstants;
import javax.swing.JButton;
import javax.swing.JSpinner;
import javax.swing.JFormattedTextField;

public class PanelFrame1 extends JPanel {

	/**
	 * Create the panel.
	 */
	public PanelFrame1() {
		setLayout(null);
		
		JLabel label = new JLabel("Panel 1");
		label.setHorizontalAlignment(SwingConstants.CENTER);
		label.setFont(new Font("Tahoma", Font.PLAIN, 20));
		label.setBounds(108, 33, 239, 31);
		add(label);
		
		JButton btnNewButton = new JButton("New button");
		btnNewButton.setBounds(70, 99, 89, 23);
		add(btnNewButton);
		
		JLabel lblNewLabel = new JLabel("New label");
		lblNewLabel.setBounds(113, 154, 46, 14);
		add(lblNewLabel);
		
		JSpinner spinner = new JSpinner();
		spinner.setBounds(281, 100, 29, 20);
		add(spinner);
		
		JFormattedTextField formattedTextField = new JFormattedTextField();
		formattedTextField.setBounds(193, 217, 141, 20);
		add(formattedTextField);

	}
}


Java GUI Create Menu and Open Another Panel Layer

PanelFrame2.java
package com.java.myapp;

import javax.swing.JPanel;
import javax.swing.JLabel;
import java.awt.Font;
import javax.swing.SwingConstants;
import javax.swing.JEditorPane;
import javax.swing.JToggleButton;
import javax.swing.JComboBox;
import javax.swing.JButton;

public class PanelFrame2 extends JPanel {

	/**
	 * Create the panel.
	 */
	public PanelFrame2() {
		setLayout(null);
		
		JLabel label = new JLabel("Panel 2");
		label.setHorizontalAlignment(SwingConstants.CENTER);
		label.setFont(new Font("Tahoma", Font.PLAIN, 20));
		label.setBounds(108, 42, 239, 31);
		add(label);
		
		JEditorPane editorPane = new JEditorPane();
		editorPane.setBounds(10, 111, 106, 20);
		add(editorPane);
		
		JToggleButton tglbtnNewToggleButton = new JToggleButton("New toggle button");
		tglbtnNewToggleButton.setBounds(135, 111, 121, 23);
		add(tglbtnNewToggleButton);
		
		JComboBox comboBox = new JComboBox();
		comboBox.setBounds(155, 168, 28, 20);
		add(comboBox);
		
		JButton btnNewButton = new JButton("New button");
		btnNewButton.setBounds(275, 190, 89, 23);
		add(btnNewButton);
		
		JButton btnNewButton_1 = new JButton("New button");
		btnNewButton_1.setBounds(47, 208, 89, 23);
		add(btnNewButton_1);

	}
}









Java GUI Create Menu and Open Another Panel Layer

PanelFrame3.java
package com.java.myapp;

import javax.swing.JPanel;
import javax.swing.JLabel;
import java.awt.Font;
import javax.swing.SwingConstants;
import javax.swing.JButton;

public class PanelFrame3 extends JPanel {

	/**
	 * Create the panel.
	 */
	public PanelFrame3() {
		setLayout(null);
		
		JLabel label = new JLabel("Panel 3");
		label.setHorizontalAlignment(SwingConstants.CENTER);
		label.setFont(new Font("Tahoma", Font.PLAIN, 20));
		label.setBounds(111, 43, 239, 31);
		add(label);
		
		JButton btnNewButton = new JButton("New button");
		btnNewButton.setBounds(127, 136, 89, 23);
		add(btnNewButton);
		
		JButton btnNewButton_1 = new JButton("New button");
		btnNewButton_1.setBounds(288, 198, 89, 23);
		add(btnNewButton_1);
		
		JButton btnNewButton_2 = new JButton("New button");
		btnNewButton_2.setBounds(56, 198, 89, 23);
		add(btnNewButton_2);

	}

}


Output

Java GUI Create Menu and Open Another Panel Layer

ตัวอย่างสร้าง Menu ขึ้นมา 3 Menu

Java GUI Create Menu and Open Another Panel Layer

แสดง Panel 1 เมื่อคลิกที่ Menu 1

Java GUI Create Menu and Open Another Panel Layer

แสดง Panel 2 เมื่อคลิกที่ Menu 2

Java GUI Create Menu and Open Another Panel Layer

แสดง Panel 3 เมื่อคลิกที่ Menu 3



อ่านเพิ่มเติม : Java GUI Swing Menus


   
Share

Property & Method (Others Related)

Java GUI Example Windows and Form
How to use : Java GUI Menu/Menu Item (Icon Image Event Handler)
How to use : Java GUI Create Menu and Shortcut Key Control
How to use : Java GUI Member Register Form and Validation Data
How to use : Java GUI Login Username and Password via JDialog
How to use : Java GUI Authorized Menu Admin/User (Menu Level)
How to use : Java GUI Create Tab and Multiple Tab Item
How to use : Java GUI Create Frame Form for Send Mail / Attachment
How to use : Java GUI Choose Data from JDialog to Main Frame
How to use : Java GUI Upload file to Database via JFileChooser
How to use : Java GUI SwingWorker and JProgressBar
How to use : Java GUI SwingWorker and BackgroundWorker
How to use : Java GUI Import CSV/Text to Database
How to use : Java GUI Download file and Progress Bar
How to use : Java GUI JTable - Check Box (JCheckBox) in JTable Cell
How to use : Java GUI JTable - Row/Column / Hight / Font / Center
How to use : Java GUI JTable - ComboBox (JComboBox) in JTable Cell
How to use : Java GUI JTable - Disabled Cell Edit
How to use : Java GUI JTable - Header Sort Data
How to use : Java GUI JTable - Filter Data in JTable
How to use : Java GUI JTable - Alternate Rows/Background Color
How to use : Java GUI JTable - Update data from all Cell in JTable
How to use : Java GUI JTable - Update Data When Cell Change Value
How to use : Java GUI JTable - Add Rows Data to JTable Model
How to use : Java GUI ComboBox (JComboBox) from Database
How to use : Java GUI List (JList) from Database
How to use : Java GUI Spinner (JSpinner) from Database
How to use : Java GUI Pass Variable / Class Between Frame
How to use : Java GUI Example Database Class (Easy use)

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


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


   


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

 
Java GUI Example Windows and Form
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
ปรับแต่งเว็บให้โหลดเร็ว


สุดยอด Source Code V2.0
 

แจ้งชำระเงิน/โอนเงิน
 

Hit Link
   







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