swingjava,swingjava食物動態代碼

本文目錄一覽:

java的Swing是輕量級組件,輕量級組件是什麼意思?

一、輕量級組件是用java代碼畫出來的,這樣具有平台移植性

重量級組件是調用系統的函數畫出來的組件,比如主窗體

一般來說盡量用輕量級的組件,這樣對程序的移植性很好。

一般java.swing包里的組件大部分是輕量級的,java.awt裡面的是重量級的。

swing是由100%純java實現的,swing組件是用java實現的輕量級組件,沒有本地代碼

不依賴操作系統的支持,這是與AWT組件的最大組別。由於AWT組件通過與具體平台的

對等類(peer)實現,因此Swing比AWT組件具有更強的實用性。Swing在不同的

平台上表現一致,並且有能力提供本地窗口系統不支持的其它特性。

二、總的來說就是

重量級組件:對應運行平台必須存在一個對應的組件.

輕量級組件:在一個虛擬的畫布上畫出來的組件(所以swing較慢),所有輕量級組件”最終”要放到重量級組件(jframe,jdialog)中.由於是畫出來所以能做到各種平台上一致的表現.同樣,如果混合重量級組件和輕量級組件容易引起重疊上的衝突.

java中的swing用法

import java.awt.BorderLayout;

import java.awt.FlowLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.util.ArrayList;

import java.util.Scanner;

import javax.swing.JButton;

import javax.swing.JDialog;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JPasswordField;

import javax.swing.JTextField;

public class TestRegister extends JDialog {

// setup the variable

String name=””;

String password=””;

JLabel nameL,passwordL;

JTextField nameArea;

JPasswordField passwordArea;

JButton register,login,cancel;

ArrayList User userData = new ArrayList User();

public static void main(String[] args) {

TestRegister test = new TestRegister();

test.setupLayout();

}

public void setupLayout(){

this.setBounds(300, 200,280,120);

this.setTitle(“Register”);

this.setResizable(false);

this.setModal(true);

setupTypeArea();

this.getData();

this.setVisible(true);

}

public void setupTypeArea(){

JPanel typeArea = new JPanel();

typeArea.setLayout(new FlowLayout());

nameL = new JLabel(“name: “);

passwordL = new JLabel(“password: “);

nameArea = new JTextField(15);

passwordArea = new JPasswordField(15);

typeArea.add(nameL);

typeArea.add(nameArea);

typeArea.add(passwordL);

typeArea.add(passwordArea);

this.add(typeArea);

JPanel buttonArea = new JPanel();

register = this.addButton(“Register”, buttonArea);

login = this.addButton(“Login”, buttonArea);

cancel = this.addButton(“Cancel”, buttonArea);

this.add(buttonArea,BorderLayout.SOUTH);

}

public JButton addButton(String name,JPanel panel){

JButton temp = new JButton(name);

temp.addActionListener(new ButtonMonitor());

panel.add(temp);

return temp;

}

public void showMessage(String m){

JOptionPane.showMessageDialog(this, m);

}

public void getData(){

try {

Scanner input = new Scanner(new FileReader(“D:/data.txt”));

while(input.hasNextLine()){

this.addUser(input.nextLine());

}

} catch (FileNotFoundException e) {

return;

}

}

public void addUser(String data){

String [] s = data.split(” “);

String name = s[0];

String password = s[1];

userData.add(new User(name,password));

}

public void updateData(){

try {

FileWriter saver = new FileWriter(“D:/data.txt”);

String data = “”;

for(int i=0; iuserData.size();i++){

data += userData.get(i).toString()+”\n”;

}

saver.write(data);

saver.close();

} catch (IOException e) {

return;

}

}

public void doRegister(){

String name = nameArea.getText();

String password = passwordArea.getText();

if(!name.isEmpty()!password.isEmpty()){

for(int i=0;iuserData.size();i++){

if(name.equals(userData.get(i).getName())){

String m = “這個用戶名已經註冊!!”;

this.showMessage(m);

doCancel();

return;

}

}

userData.add(new User(name,password));

updateData();

doCancel();

}

else{

String m=”用戶名或者密碼是空!!!”;

this.showMessage(m);

doCancel();

}

}

public void doLogin(){

String name = nameArea.getText();

String password = passwordArea.getText();

for(int i=0;iuserData.size();i++){

if(name.equals(userData.get(i).getName())password.equals(userData.get(i).getPassword())){

String m = “登陸成功”;

this.showMessage(m);

this.doCancel();

return;

}

}

String m =”用戶名和密碼不匹配!!”;

this.showMessage(m);

this.doCancel();

}

public void doCancel(){

nameArea.setText(“”);

passwordArea.setText(“”);

}

class ButtonMonitor implements ActionListener{

public void actionPerformed(ActionEvent e) {

if(e.getActionCommand().equals(“Register”)){

doRegister();

}else if(e.getActionCommand().equals(“Login”)){

doLogin();

}else if(e.getActionCommand().equals(“Cancel”)){

doCancel();

}

}

}

class User{

String name;

String password;

public User(String name, String password) {

this.name = name;

this.password = password;

}

public String getName() {

return name;

}

public String getPassword() {

return password;

}

public String toString(){

return name+” “+password;

}

}

}

給你隨便寫了一下。。。簡單登陸用的話用JDialog就夠了不必要用JFrame

其實最好是用資料庫

JAVA初學者:swing是什麼

看看這個就知道了

Java應用程序用戶界面開發包

Swing是一個用於開發Java應用程序用戶界面的開發工具包。它以抽象窗口工具包(AWT)為基礎使跨平台應用程序可以使用任何可插拔的外觀風格。Swing開發人員只用很少的代碼就可以利用Swing豐富、靈活的功能和模塊化組件來創建優雅的用戶界面。

工具包中所有的包都是以swing作為名稱,例如javax.swing,javax.swing.event

用Swing創建圖形界面步驟:

(1)導入Swing包

(2)選擇界面風格

(3)設置頂層容器

(4)設置按鈕和標籤

(5)將組件放到容器上

(6)為組件增加邊框

(7)處理事件

(8)輔助技術支持

1。導入Swing包

下面語句導入Swing包

import javax.swing.*;

大部分Swing程序用到了AWT的基礎底層結構和事件模型,因此需要導入兩個包:

import java.awt.*;

import java.awt.event.*;

如果圖形界面中包括了事件處理,那麼還需要導入事件處理包:

import javax.swing.event.*;

2.選擇界面風格

Swing允許選擇程序的圖形界面風格常用的有java風格,windows風格等

下面的代碼用於選擇圖形界面風格,這裡選擇的是跨平台的Java界面風格。

try { UIManager.setLookAndFeel(

UIManager.getCrossPlatformLookAndFeelClassName( )); }

catch (Exception e) { }

(3) 設置頂層容器

圖形界面至少要有一個頂級Swing容器

頂級Swing容器為其它Swing組件在屏幕上的繪製和處理事件提供支持

常用的頂級容器:

JFrame(框架):表示主程序窗口

JDialog(對話框):每個JDialog對象表示一個對話框,對話框屬於二級窗口

JApplet(小程序):在瀏覽器內顯示一個小程序界面

一個框架包括邊界、菜單欄、工具欄、狀態欄,以及中間佔主要部分的窗格

窗格也可以看作是一種面板,但它是框架的一個組成部分

組件不會直接放到框架上,而是放在若干個面板上,這些面板再放到窗格上

用框架對象的getContentPane()函數來獲得窗格,再調用窗格的add()函數放置面板

public static void main(String[ ]args){JFrame frame=new JFrame(“SwingApplication”);

JPanel panel1=new JPanel();

frame.getContentPane().add(panel1,BorderLayout.CENTER);

……//添加其他組件

frame.pack();frame.setVisible(true);}

java裡面的swing組件是什麼東西?

是一種b/s結構的,做的是桌面程序的,但是Java的swing不是很好,Java強打的是網頁,所以一般很少用到swing

java中swing 全稱

swing就是全稱

awt是abstract window toolkit的簡寫,但是swing沒有

swing的意思是:

1 搖擺; 擺動

2 擺動的幅度; 擺動的範圍

The pendulum’s swing is 12 inches. 鐘擺的擺動幅度是十二寸

3 手臂揮動產生的打擊

4 揮動 (球棒, 高爾夫球棒等物) 的姿勢

5 (態度, 地位, 狀況的) 改變

a swing to conservation 轉趨保守

6 自由的行為

The children have free swing in deciding what color to paint their room.孩子可自行決定房間油漆的顏色

7 a. 優雅的移動

has a swing to her walk 走路搖曳生姿

b. 前後擺動

the swing of a bird across the sky 鳥在空中的飛行

8 (可以回到原點的) 路線, 行程

a swing across the state while campaigning 競選時在州內的循環活動

9 鞦韆

10 正常步調

back in the swing 回歸正常

11 (詩的) 音律

12 股市行情的起伏

13 『音樂』

a. 搖擺樂

1935 年以爵士為基礎發展而成的流行舞曲, 旋律較簡單

b. 放搖擺樂舞曲的舞廳

c. 輕妙的節奏

看來swing有很多有意思的地方,或許開發者開發swing組件的時候就看上了哪條吧~

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/189038.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-29 08:00
下一篇 2024-11-29 08:00

相關推薦

  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • QML 動態載入實踐

    探討 QML 框架下動態載入實現的方法和技巧。 一、實現動態載入的方法 QML 支持從 JavaScript 中動態指定需要載入的 QML 組件,並放置到運行時指定的位置。這種技術…

    編程 2025-04-29
  • Python字元串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字元串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字元串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • Python基礎代碼用法介紹

    本文將從多個方面對Python基礎代碼進行解析和詳細闡述,力求讓讀者深刻理解Python基礎代碼。通過本文的學習,相信大家對Python的學習和應用會更加輕鬆和高效。 一、變數和數…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • 倉庫管理系統代碼設計Python

    這篇文章將詳細探討如何設計一個基於Python的倉庫管理系統。 一、基本需求 在著手設計之前,我們首先需要確定倉庫管理系統的基本需求。 我們可以將需求分為以下幾個方面: 1、庫存管…

    編程 2025-04-29
  • 寫代碼新手教程

    本文將從語言選擇、學習方法、編碼規範以及常見問題解答等多個方面,為編程新手提供實用、簡明的教程。 一、語言選擇 作為編程新手,選擇一門編程語言是很關鍵的一步。以下是幾個有代表性的編…

    編程 2025-04-29
  • Python實現簡易心形代碼

    在這個文章中,我們將會介紹如何用Python語言編寫一個非常簡單的代碼來生成一個心形圖案。我們將會從安裝Python開始介紹,逐步深入了解如何實現這一任務。 一、安裝Python …

    編程 2025-04-29
  • 怎麼寫不影響Python運行的長段代碼

    在Python編程的過程中,我們不可避免地需要編寫一些長段代碼,包括函數、類、複雜的控制語句等等。在編寫這些代碼時,我們需要考慮代碼可讀性、易用性以及對Python運行性能的影響。…

    編程 2025-04-29
  • 北化教務管理系統介紹及開發代碼示例

    本文將從多個方面對北化教務管理系統進行介紹及開發代碼示例,幫助開發者更好地理解和應用該系統。 一、項目介紹 北化教務管理系統是一款針對高校學生和教職工的綜合信息管理系統。系統實現的…

    編程 2025-04-29

發表回復

登錄後才能評論