1. 程式人生 > 程式設計 >Java基礎入門 Swing中間容器的使用

Java基礎入門 Swing中間容器的使用

目錄
  • 基礎入門 Swing中間容器
    • 下面舉例說明一下crollPane的方法
  • Java Swing頂層容器類
    • Swing擁有三個常用的頂層容器類

Java基礎入門 Swing中間容器

在Swing中不僅有JFrame、JDialog這樣的頂級視窗,還擁有一些中間容器,這些容器不能單獨存在,必須依存在頂級視窗中。最常見的是JPanel、JScrollPane。

  • JPanel:JPanel和AWT中的Panel元件使用方法基本一致,他是一個無邊框不能被放大、移動、關閉的面板,它的預設佈局管理器是FlowLayout,當然這是可以使用setLayout()方法重新設定的
  • JScrollPane
    :與JPanel不同的是,JScrollPane是一個帶有滾動條的面板容器而且這個面板只能新增一個元件,如果想新增多個元件就必須先把多個元件新增到Panel中再將Panel新增到JScroollPane中

下面舉例說明一下JScrollPane的方法

JScrollPane的構造方法及方法
方法宣告 功能描述
JScrollPane() 建立一個空的JScrollPane面板
JScrollPane(Component view) 建立一個顯示指定元件的JScrollhttp://www.cppcns.comPane面板,只要元件大小超過面板大小就會出現水平和垂直滾動條
JScrollPane(Component view,int vsbPolicy,int hsbPoliy) 建立一個顯示指定容器的JScrollPane面板
import java.awt.*;
import javax.swing.*; 
public class Main extends JFrame{
	public Main(){
		this.setTitle("PanelDemo");
		JScrollPane scrollPane=new JScrollPane();
		//設定水平進度條需要時出現
		scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
		//設定垂直進度條一直出現
		scrollPane.setVerticalScrollBarPolicy(ScrollPaneC
onstants.VERTICAL_SCROLLBAR_ALWAYS); JPanel panel=new JPanel(); panel.add(new JButton("按鈕1")); panel.add(new JButton("按鈕2")); panel.add(new JButton("按鈕3")); panel.add(new JButton("按鈕4")); for(int i=5;i<100;i++){ panel.add(new JButton("按鈕"+i)); } //將JPanel面板新增在滾動面板上顯示 scrollPane.setViewportView(panel); //將滾動面板新增到窗體的中部(CENTER) this.add(scrollPane,BorderLayout.CENTER); //建立窗體可關閉按鈕 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(400,250); this.setVisible(true); } public static void main(String[] args)throws Exception{ new Main(); } }

Java Swing頂層容器類

Swing擁有三個常用的頂層容器類

  • JFrame
  • JDialog
  • JApplet

1,任何畫面類,必須是容器類的分支,任何介面樹的頂層容器類必須是上面三個中的一個。

2,任何畫面元件只能被容器類引用一次,如果複製他們到另外的容http://www.cppcns.com器類,它會被從第一個容器類中刪除然後放在第二個容器類中。

3,頂層容器類都含有一個內容面板,包含了頂層容器要顯示的內容

4,頂層容器類通常含有一個Menu Bar,這個Menu Bar可以帶來更好的使用體驗,比如在Mac系統中,Menu bar會顯示在screen頂上而不是app頂上。

注意,JPanel預設的排版方式是FlowLayout

但是可以使用頂層容器類的setContentPanel替換成自定義佈局的JPanel類。

示例程式碼:

Java基礎入門&nbsp;Swing中間容器的使用

package com.jesse.kotlin.com.jesse.gui 
import java.awt.BorderLayout
import java.awt.Dimension
import javax.swing.*
 
class WindowMain { 
    private val rootContainer = JFrame("GUI Demo") 
    fun buildGui(){
        rootContainer.defaultCloseOperation = JFrame.EXIT_ON_CLOSE
        var label = JLabel("Hello world")
        rootContainer.contentPane.add(label,BorderLayout.CENTER)
        rootContainer.preferredSize = Dimension(400,300)
 
        var menuPanel:JMenuBar = JMenuBar()
        menuPanel.add(JMenu("help"))
        rootContainer.jMenuBar = menuPanel
 
        rootContainer.pack()
        rootContainer.isVisible = true
    }
} 
fun main(args: Array<String>) {
    SwingUtilities.invokeLater {
        WindowMain().buildGui()
    }
}

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援我們。