欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java彈簧布局管理器使用方法詳解

 更新時間:2017年09月04日 10:17:14   投稿:mengwei  
這篇文章主要介紹了Java彈簧布局管理器使用方法詳解,需要的朋友可以參考下

        由 SpringLayout 類實現的布局管理器稱為彈簧布局管理器。利用該布局管理器管理組件,當改變窗體的大小時,能夠在不改變組件間相對位置的前提下自動調整組件大小,使組件依舊布滿整個窗體,從而保證了窗體的整體效果。下面,通過一個實例來看看彈簧布局管理器的使用方法和效果。

        彈簧布局管理器以容器和組件的邊緣為操作對象,通過為組件和容器邊緣以及組件和組件邊緣建立約束,實現對組件布局的管理。通過方法 putConstraint(String e1,Conponet c1,int pad,String e2,Componet c2)可以為各邊之間建立約束,該方法的入口參數說明如下:

c1:需要參考的組件對象;

c2:需要參考的組件對象的具體需要參考的邊;

e1:被參考的組件對象;

e2:被參考的組件對象的具體被參考的邊;

 pad:兩條邊之間的距離,即兩個組件之間的間距。

        有點繞,其實很好理解。

        實例1:使用彈簧布局管理器。

        本實例利用彈簧布局管理器實現窗體,在調整窗體的大小后,組件仍會布滿整個窗體,并且組件間的相對位置并不會改變。源碼:

import java.awt.Container;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.Spring;
import javax.swing.SpringLayout;


public class SpringLayout_3 extends JFrame {

	private static final long serialVersionUID = -6045918631932051025L;

	public SpringLayout_3() {
		// TODO Auto-generated constructor stub
		Container container = getContentPane();
		SpringLayout springLayout = new SpringLayout();
		container.setLayout(springLayout);
		JLabel topicLabel = new JLabel("主題 :");
		JLabel contentLabel = new JLabel("內容 :");
		final JTextField textField = new JTextField(30);
		JTextArea textArea = new JTextArea(3, 30);
		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setViewportView(textArea);
		textArea.setLineWrap(true);
		final JButton confirmButton = new JButton("取消");
		JButton cancelButton = new JButton("確認");
		Spring st = Spring.constant(10);
		Spring st2 = Spring.constant(30);
		container.add(topicLabel);
		springLayout.putConstraint(SpringLayout.NORTH, topicLabel, st, 
				SpringLayout.NORTH, container);
		springLayout.putConstraint(SpringLayout.WEST, topicLabel, st, 
				SpringLayout.WEST, container);
		container.add(textField);
		springLayout.putConstraint(SpringLayout.WEST, textField, st2, 
				SpringLayout.EAST, topicLabel);
		springLayout.putConstraint(SpringLayout.NORTH, textField, 0, 
				SpringLayout.NORTH, topicLabel);
		springLayout.putConstraint(SpringLayout.EAST, textField, Spring.minus(st), 
				SpringLayout.EAST, container);
		container.add(contentLabel);
		springLayout.putConstraint(SpringLayout.WEST, contentLabel, 0, 
				SpringLayout.WEST, topicLabel);
		springLayout.putConstraint(SpringLayout.NORTH, contentLabel, st, 
				SpringLayout.SOUTH, topicLabel);
		container.add(scrollPane);
		springLayout.putConstraint(SpringLayout.NORTH, scrollPane, 0, 
				SpringLayout.NORTH, contentLabel);
		springLayout.putConstraint(SpringLayout.WEST, scrollPane, 0, 
				SpringLayout.WEST, textField);
		springLayout.putConstraint(SpringLayout.EAST, scrollPane, Spring.minus(st), 
				SpringLayout.EAST, container);
		container.add(confirmButton);
		springLayout.putConstraint(SpringLayout.SOUTH, scrollPane, Spring.minus(st), 
				SpringLayout.NORTH, confirmButton);
		springLayout.putConstraint(SpringLayout.EAST, confirmButton, Spring.minus(st), 
				SpringLayout.EAST, container);
		springLayout.putConstraint(SpringLayout.SOUTH, confirmButton, Spring.minus(st), 
				SpringLayout.SOUTH, container);
		container.add(cancelButton);
		springLayout.putConstraint(SpringLayout.EAST, cancelButton, Spring.minus(st), 
				SpringLayout.WEST, confirmButton);
		springLayout.putConstraint(SpringLayout.NORTH, cancelButton, 0, 
				SpringLayout.NORTH, confirmButton);	
		
		// make the text field focused every time the window is activated
		addWindowFocusListener(new WindowAdapter() {

			@Override
			public void windowGainedFocus(WindowEvent e) {
				// TODO Auto-generated method stub
				textField.requestFocus();
			}

		});
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		SpringLayout_3 frame = new SpringLayout_3();
		frame.setTitle("使用彈簧布局管理器");
		frame.setVisible(true);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setBounds(100, 100, 600, 300);
	}

}

總結

以上就是彈簧布局管理器的使用方法及實例,喜歡的同學快去試試效果吧。

感謝大家對腳本之家的支持!

相關文章

  • Struts2 文件上傳進度條的實現實例代碼

    Struts2 文件上傳進度條的實現實例代碼

    本篇文章主要介紹了Struts2 文件上傳進度條的實現實例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • springboot實現注冊加密與登錄解密功能(demo)

    springboot實現注冊加密與登錄解密功能(demo)

    這篇文章主要介紹了springboot實現注冊的加密與登錄的解密功能,本文通過demo實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • MyBatis源碼分析之日志記錄詳解

    MyBatis源碼分析之日志記錄詳解

    這篇文章主要給大家介紹了關于MyBatis源碼分析之日志記錄的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用MyBatis具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-11-11
  • Java操作透明圖片并保持背景透明的實現

    Java操作透明圖片并保持背景透明的實現

    這篇文章主要介紹了Java操作透明圖片并保持背景透明的實現,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • java截取網頁圖片的方法

    java截取網頁圖片的方法

    這篇文章主要介紹了java截取網頁圖片的方法,涉及java調用第三方控件實現截圖的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • httpclient staleConnectionCheckEnabled獲取連接流程解析

    httpclient staleConnectionCheckEnabled獲取連接流程解析

    這篇文章主要為大家介紹了httpclient staleConnectionCheckEnabled獲取連接流程示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • Java volatile的幾種使用場景分析

    Java volatile的幾種使用場景分析

    volatile 是一種輕量級的同步機制,它能保證共享變量的可見性,同時禁止重排序保證了操作的有序性,但是它無法保證原子性,本文給大家總結了Java olatile的使用場景有哪些,并通過代碼示例講解的非常詳細,需要的朋友可以參考下
    2024-03-03
  • 一文詳解JAVA中InputStreamReader流

    一文詳解JAVA中InputStreamReader流

    本文主要介紹了一文詳解JAVA中InputStreamReader流,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • 實戰(zhàn)指南:Java編寫Flink?SQL解決難題

    實戰(zhàn)指南:Java編寫Flink?SQL解決難題

    想知道如何利用Java編寫Flink?SQL解決難題嗎?本指南將為您揭示最實用的技巧和策略,讓您輕松應對挑戰(zhàn),跟著我們一起探索,讓Java和Flink?SQL成為您問題解決的得力助手!
    2023-12-12
  • Java基礎強化訓練輸入錯誤即結束進程

    Java基礎強化訓練輸入錯誤即結束進程

    本文主要介紹了Java編程的基礎知識強化應用,文中實例涉及到了許多基礎知識,new對象,控制臺輸入,if語句等。很實用,需要的朋友可以參考下
    2017-09-09

最新評論