1. 程式人生 > >Java中Swing程式設計JFrame視窗的使用

Java中Swing程式設計JFrame視窗的使用

Java中GUI程式的編寫離不開Swing和AWT程式設計。

二者的區別和聯絡:

AWT(Abstract Window Toolkit):抽象視窗工具包,早期編寫圖形介面應用程式的包。
Swing :為解決 AWT 存在的問題而新開發的圖形介面包。Swing是對AWT的改良和擴充套件。
AWT的圖形函式與作業系統提供的圖形函式有著一一對應的關係。當我們利用 AWT構件圖形使用者介面的時候,實際上是在利用作業系統的圖形庫。AWT是依靠本地方法來實現功能的,所以AWT控制元件稱為“重量級控制元件”。 而Swing ,不僅提供了AWT 的所有功能,還用純粹的Java程式碼對AWT的功能進行了大幅度的擴充。由於 Swing是用純粹的Java程式碼來實現的,因此Swing控制元件在各平臺通用。因為Swing不使用本地方法,故Swing控制元件稱為“輕量級控制元件”。

Swing元件包含JFrame, JApplet, JDialog和JWindow等容器,我們簡單地學習下JFrame的基本使用。

使用:

繼承JFrame類,初始化視窗,新增按鈕、顯示框、文字框等,設定大小、設定可見、設定字型、新增響應事件,將容器JFrame例項設定為可見。

程式碼如下:

import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;

import javax.swing.JButton;
import
javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; public class myFrame extends JFrame { private static final long serialVersionUID = 1L; static String path = null; public static void main(final String[] args) { // 畫出視窗
final JFrame frame = new myFrame(); frame.setLayout(null); frame.setTitle("myFrame"); frame.setSize(400, 170); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 新增按鈕 final JButton btn1 = new JButton("瀏覽"); final JButton btn2 = new JButton("確定"); btn1.setBounds(80, 70, 60, 25); btn2.setBounds(240, 70, 60, 25); btn1.setVisible(true); btn2.setVisible(true); frame.add(btn1); frame.add(btn2); // 設定字型 final Font font = new Font("宋體", Font.BOLD, 11); btn1.setFont(font); btn2.setFont(font); // 新增顯示框 final JLabel label = new JLabel("路徑:"); label.setBounds(60, 20, 50, 25); label.setVisible(true); label.setFont(font); frame.add(label); // 新增文字框 final JTextField textField = new JTextField(); textField.setBounds(120, 20, 190, 22); textField.setVisible(true); frame.add(textField); frame.setVisible(true); // 為按鈕新增事件 btn1.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { final JFileChooser chooser = new JFileChooser(); chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); final int returnVal = chooser.showOpenDialog(btn1); if (returnVal == JFileChooser.APPROVE_OPTION) { final File file = chooser.getSelectedFile(); path = file.getAbsolutePath(); textField.setText(path); } } }); btn2.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { final myFrame myFrame = new myFrame(); myFrame.addInfo(path); } }); // 為文字框新增事件 textField.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { if (new File(textField.getText()).isDirectory()) { path = textField.getText(); } else { final myFrame myFrame = new myFrame(); myFrame.addInfo("路徑名錯誤"); } } }); } public void addInfo(final String string) { final JFrame f = new JFrame("提示"); f.setLayout(null); f.setBounds(40, 40, 300, 100); f.setVisible(true); final JLabel label = new JLabel(string); label.setBounds(30, 20, 250, 20); final Font f1 = new Font("宋體", Font.BOLD, 12); label.setFont(f1); f.add(label); } }

測試:

  • 通過文字框輸入錯誤路徑並回車:

這裡寫圖片描述

  • 通過選擇框選擇正確路徑:

這裡寫圖片描述

相關推薦

JavaSwing程式設計JFrame視窗的使用

Java中GUI程式的編寫離不開Swing和AWT程式設計。 二者的區別和聯絡: AWT(Abstract Window Toolkit):抽象視窗工具包,早期編寫圖形介面應用程式的包。 Swing :為解決 AWT 存在的問題而新開發的圖形介面包。S

Java開發Swing實戰JFrame和JTabbedPane容器的用法詳細解析

概述: 專案是一個桌面程式,涉及標籤和按鈕元件、佈局管理器元件、面板元件、列表框和下拉框元件等元件,以及Swing事件處理機制。 下面先從最基礎的介面開始。 /** @author: lishuai @date: 2018/11/26 13:51 */ public cl

關於JavaGUI程式設計記錄

import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing

java如何對JFrame進行設定背景顏色和背景圖片

/** * 給JFrame 新增一個背景圖案。 */ package com.swingpractise; import javax.swing.*; public class JFrameBackground4 extends JFrame { //建立一個JLayeredPane用於分層的。 JLaye

javaNIO程式設計另一種實現超實用

  除了普通的Socket與ServerSocket實現的阻塞式通訊外,Java提供了非阻塞式通訊的NIO API。先看一下NIO的實現原理。        從圖中可以看出,伺服器上所有Channel(包括ServerSocketChannel和SocketCha

javaswing上傳圖片讀取顯示

public static void eventOnImport(JButton upload) { ByteArrayOutputStream baos = null; JFileChooser chooser = new JFileChooser(); chooser.

Java使用元件編寫視窗實現網路圖片的顯示

這篇文章使用Java元件顯示視窗,在通過輸入的圖片url地址在視窗中顯示出來,可作為一個網路圖片檢視器,感興趣的可以打包成jar或者.exe檔案方便使用,這裡我只掛出了原始碼,效果如下圖。 package com.rain.image; imp

Java核心(Swing 程式設計4-列表元件、文字元件、常用時間監聽器)

一、列表元件    Swing 中提供了兩種列表元件,分別為下拉列表框與列表框。下拉列表框與列表框都是帶有一系列專案的元件,使用者可以從中選擇需要的專案。列表框較下拉列表框更直觀,它將所有的專案羅列在列表框中;但下拉列表框較列表框更為便捷、美觀,它將所有的專案隱藏起來,當用戶

JAVA如何在Jframe面板插入背景圖片

=========================================更新線======================================        這段時間工作一直很忙,好久沒有看自己的部落格,也沒有想到以前寫的一個小問題有這麼多人看,看到評

Java核心(Swing 程式設計2-標籤、圖示、佈局)

一、標籤元件與圖示    在 Swing 中顯示文字或提示資訊的方法是使用標籤,它支援文字字串和圖示。在應用程式的使用者介面中,一個簡短的文字標籤可以使使用者知道這些元件的目的,所以標籤在 Swing 中是比較常用的元件。    1.1 標籤的使用    標籤由 JLabel

java程式設計過程如何在JFrame面板新增圖片作為背景

/**  * 作者:李鵬飛* 功能:新增背景演示 * 時間:2013/9/9 */ package www.csdn.java.lipf; import java.awt.FlowLayout;

Javaawt和swing的關系和區別

界面 及其 軟件 功能性 圖形圖像 自己 輕量級 c++程序 控制 概述 awt是抽象組件窗口工具包,是Java最早的用於編寫圖形應用程序的開發包。 Swing是為了補充awt的一些功能性的缺失問題而開發的包,以awt為基礎的。 軟件包 java.awt 的描述 包含用於創

JavaSwingJTextPane如何繪制行號

代碼 name panel 9.png 自己 顯示行號 led att gin Oracle在JTextPane類中並沒有直接提供顯示行號的方法,所以這個功能應該由程序員自己來完成,筆者發現網上很多的顯示行號的代碼都存在一個問題,就是不準確,特別是在行數變多了以後。 筆者

Java併發程式設計的藝術之八----java的併發工具類

1.等待多執行緒完成的countDownLatch CountDownLatch允許一個或多個執行緒等待其他執行緒完成操作。 執行緒中,讓一個執行緒等待最簡單的做法是使用join方法,執行緒A中呼叫B.join方法,說明讓執行緒A等待執行緒B完成之後再執行。 實現原理:不停檢查執行緒是否

Java併發程式設計的藝術之五----java的鎖

1.Lock介面 鎖是用來控制多個執行緒訪問共享資源的方式,一般來說,一個鎖能夠防止多個執行緒同時訪問共享資源(但是有些鎖可以允許多個執行緒併發的訪問共享資源,比如讀寫鎖)。Java SE 5之後,併發包中新增了Lock介面(以及相關實現類)用來實現鎖功能,在使用時需要顯式地獲取和釋放鎖。雖然它

JavaJFrame插入圖片的程式碼

資料夾“影象”是與“src”同級的目錄檔案  package com.main; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; public class Exa

Java的十個”單行程式碼程式設計”(One Liner)

本文列舉了十個使用一行程式碼即可獨立完成(不依賴其他程式碼)的業務邏輯,主要依賴的是 Java8 中的 Lambda 和 Stream 等新特性以及 try-with-resources、JAXB 等。 1. 對列表/陣列中的每個元素都乘以2

java程式設計——JAVA 的棧與堆

簡介 JAVA在程式執行時,在記憶體中劃分5片空間進行資料的儲存。分別是: 暫存器。 本地方法區。 方法區。 棧。 堆。 棧stack和堆heap這兩個概念很重要 棧: 函式中定義的基本型別變數,物件的引用變數都在函式的棧記憶體中分配。

安全程式設計(十四)- Javathrow和throws的區別

1.粗淺來說         throw是一個語句丟擲異常,throws是一個方法丟擲異常;         throw不是和try-catch-finally配套使用就是和throws配套使用,而throws可

java程式設計入門2 java的四種訪問許可權控制

在java中提供了四種訪問許可權控制:預設訪問許可權(包訪問許可權),public,private以及protected 只有預設訪問許可權(包訪問許可權)和public能用來修飾類(不包括內部類) 修飾變數和方法這四種許可權均可 1.public 修飾類表示該類對其他所有類可見 修飾一個類的變數和