導航:首頁 > 編程語言 > javagui圖形界面編程實例

javagui圖形界面編程實例

發布時間:2023-04-23 08:07:06

㈠ GUI程序設計(java)

=====================第一個類=============================
/**
*
* 實現了系統計算器連續按"="和按"+","-","*","/"進行累記運算的模式
*
* */
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class CalculatorFrame extends JFrame {
private JTextField txtDis = new JTextField("0", 16); //顯示文本框
private JButton[] btnGrp = new JButton[17]; //17個按鈕
private JPanel jpnMain = new JPanel(); //主面板
private JPanel jpnNorth = new JPanel(); //上面板
private JPanel jpnSouth = new JPanel(); //下面板
private double numSaved; //保存的前一個數
private String operator = ""; //保存的運拿汪叢算符號
private String lastPress = ""; //上一次按的陵基按鈕("數字","運算符" 或 "等號")

/*構造函數*/
public CalculatorFrame() {
//窗口設置
setTitle("計算器");
setSize(210, 250);
buttonInit(); //按鈕初始化
//主面板設置
add(jpnMain);
jpnMain.setLayout(null);
jpnMain.add(jpnNorth);
jpnMain.add(jpnSouth);
jpnMain.add(btnGrp[15]);
btnGrp[15].setBounds(8, 180, 188, 30); //添加「=」按鈕
//上面板設置
jpnNorth.setBounds(8, 10, 190, 30);
jpnNorth.add(txtDis);
txtDis.setHorizontalAlignment(JTextField.RIGHT); //設置文本右對齊
txtDis.setEditable(false);
//下面板設置
jpnSouth.setBounds(8, 60, 190, 120);
jpnSouth.setLayout(new GridLayout(4, 4));
addSouthJpn(); //添加17個按鈕
//添加監聽器
addListener();
}

/*17個按鈕顯示消櫻值初始化*/
public void buttonInit() {
for (int i = 0; i < 10; i++) {
btnGrp[i] = new JButton("" + i);
}
btnGrp[10] = new JButton(".");
btnGrp[11] = new JButton("+");
btnGrp[12] = new JButton("-");
btnGrp[13] = new JButton("*");
btnGrp[14] = new JButton("/");
btnGrp[15] = new JButton("=");
btnGrp[16] = new JButton("C");
for (int i = 0; i < 17; i++) {
btnGrp[i].setFont(new Font("Dialog", Font.PLAIN, 18));
}
}

/*按網格順序添加除「=」外16個按鈕*/
public void addSouthJpn() {
int[] index={7,8,9,14,4,5,6,13,1,2,3,12,0,16,10,11};
for(int i=0;i<index.length;i++){
jpnSouth.add(btnGrp[index[i]]);
}
}

/*給按鈕添加監聽器*/
public void addListener() {
//給數字按鈕添加監聽器,btnGrp[10]是"."號
for (int i = 0; i <= 10; i++) {
btnGrp[i].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String button = ( (JButton) e.getSource()).getText();
//如果有運算操作符或文本框數字為0並且按鈕不為「。」
if (lastPress == "運算符" || lastPress == "等號"
|| txtDis.getText().equals("0") && button != ".") {
txtDis.setText(""); //清空文本框
}
if (lastPress == "等號") {
operator = ""; //上次按的是=號,這次按數字,清空運算符
}
if (button == "." && txtDis.getText().indexOf(".") != -1) {
} //這次按的是.文本框內已經包含.這種情況什麼都不做,防止.重復
else {
txtDis.setText(txtDis.getText() + button); //文本框添加內容
}
lastPress = "數字";
}
});
}
//給運算操作符按鈕添加監聽器
for (int i = 11; i <= 14; i++) {
btnGrp[i].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (operator != "" && lastPress == "數字") { //運算符不為空並且之前按的是數字
(btnGrp[15].getActionListeners())[0].actionPerformed(e); //手動調用=號的監聽響應實現=號功能
}
numSaved = Double.parseDouble(txtDis.getText()); //保存當前文本框的數字
operator = ( (JButton) e.getSource()).getText(); //保存運算操作符
lastPress = "運算符"; //添加運算符標記,下次文本框清空
}
});
}
//給等號按鈕添加監聽器
btnGrp[15].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
double numNow = Double.parseDouble(txtDis.getText()); //當前文本框的數字
//運算符匹配操作
if (operator.equals("+")) {
txtDis.setText( (numSaved + numNow) + "");
}
else if (operator.equals("-")) {
if (lastPress == "等號") { //累記運算時的演算法(一直按等號)
txtDis.setText( (numNow - numSaved) + "");
}
else {
txtDis.setText( (numSaved - numNow) + "");
}
}
else if (operator.equals("*")) {
txtDis.setText( (numSaved * numNow) + "");
}
else if (operator.equals("/")) {
if (lastPress == "等號") { //累記運算時的演算法(一直按等號)
txtDis.setText( (numNow / numSaved) + "");
}
else {
txtDis.setText( (numSaved / numNow) + "");
}
}
if (lastPress != "等號") { //是第一次,以後按累記運算
numSaved = numNow; //保存數改為後一個數
}
lastPress = "等號"; //添加運算符標記,下次文本框清空
}
});
//給復位符「C」按鈕添加監聽器
btnGrp[16].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
txtDis.setText("0");
numSaved = 0;
operator = "";
lastPress = "";
}
});
}
}

=====================第二個類=============================

import javax.swing.*;
public class Test {
public Test() {
CalculatorFrame calframe = new CalculatorFrame(); //新窗口
calframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //設置關閉
calframe.setLocationRelativeTo(null); //窗口置中
calframe.setVisible(true); //顯示窗口
calframe.(false); //使用windows視感
calframe.setResizable(false); //窗口不可調大小
}

public static void main(String[] args) {
Test test = new Test();
}
}

㈡ 用java寫一個登陸界面代碼。

概述

具體框架使用jframe,文本框組件:JTextField;密碼框組件:JPasswordField;標簽組件:JLabel;復選框組件:JCheckBox;單選框組件:JRadioButton;按鈕組件JButton。

登錄界面:

Swing 是一個為Java設計的GUI工具包。

Swing是JAVA基礎類的一部分。

Swing包括了圖形用戶界面(GUI)器件如:文本框,按鈕,分隔窗格和表。

Swing提供許多比AWT更好的屏幕顯示元素。它們用純Java寫成,所以同Java本身一樣可以跨平台運行,這一點不像AWT。它們是JFC的一部分。它們支持可更換的面板和主題(各種操作系統默認的特有主題),然而不是真的使用原生平台提供的設備,而是僅僅在表面上模仿它們。這意味著你可以在任意平台上使用JAVA支持的任意麵板。輕量級組件的缺點則是執行速度較慢,優點就是可以在所有平台上採用統一的行為。

概念解析:

JFrame– java的GUI程序的基本思路是以JFrame為基礎,它是屏幕上window的對象,能夠最大化、最小化、關閉。

JPanel– Java圖形用戶界面(GUI)工具包swing中的面板容器類,包含在javax.swing 包中,可以進行嵌套,功能是對窗體中具有相同邏輯功能的組件進行組合,是一種輕量級容器,可以加入到JFrame窗體中。。

JLabel– JLabel 對象可以顯示文本、圖像或同時顯示二者。可以通過設置垂直和水平對齊方式,指定標簽顯示區中標簽內容在何處對齊。默認情況下,標簽在其顯示區內垂直居中對齊。默認情況下,只顯示文本的標簽是開始邊對齊;而只顯示圖像的標簽則水平居中對齊。

JTextField–一個輕量級組件,它允許編輯單行文本。

JPasswordField– 允許我們輸入了一行字像輸入框,但隱藏星號(*) 或點創建密碼(密碼)

JButton– JButton 類的實例。用於創建按鈕類似實例中的 "Login"。

㈢ Java編寫一個圖形界面

rcp(SWT/JFace)開發的要不要,同樣是java的

㈣ 使用Java的GUI圖形用戶界面編程設計並編寫一個計算器程序

進口的java.awt.BorderLayout;
進口java.awt.GridLayout中;

進口java.awt.event.ActionEvent;

進口java.awt.event.ActionListener;

進口的javax。 swing.JButton;

進口javax.swing.JFrame中;

進口javax.swing.JPanel;

進口javax.swing.JTextField中;

/ /暫時不考慮這個問題甚至添加

/ /點的第二個操作點的操作員點運算符點=結果

公共類計算器實現的ActionListener {
> JTextField的JTF =新的JTextField(10);

私人布爾追加= FALSE;

私人字元串OP1 =「0」;

私人字元串運算符=「+」;

@覆蓋

公共無效的actionPerformed(ActionEvent的E){

字元串COMN = e.getActionCommand();。!

/ /處理數字

如果(「0123456789」的indexOf(COMN)= -1){

如果(追加){/ /追加

字元串溫度= jtf.getText() ;

jtf.setText(溫度+ COMN);

}其他{/ /替換

jtf.setText(COMN);

追加= TRUE;

/ /處理運營商

否則,如果(「+ - * /」的indexOf(COMN)= -1){

OP1 = JTF。的getText();

運算符= COMN;

追加= FALSE;

的} else if(「=」的indexOf(COMN)= -1。){

字元串OP2 = jtf.getText();

雙D1 = Double.parseDouble(OP1);

雙D2 = Double.parseDouble(OP2);

如果(「+」等於(操作者)。){

D1 = D1 + D2;

}否則,如果(「 - 」等於(操作員)。){

D1 = D1 - D2;

}否則,如果(「*」的equals(操作員)。){

D1 = D1 * D2;

的} else if(「/」等於(操作者)。){

D1 = D1 / D2;

jtf.setText(D1 +「」);

追加= FALSE;

}否則,如果(等於(COMN)「。」){

字元串溫度= jtf.getText();

如果(temp.indexOf(「;」)== -1){

jtf.setText(溫度+「。」);

追加= TRUE;

否則,如果(「+ / - 」的equals(COMN)){

字元串溫度= jtf.getText();

如果(temp.startsWith(「-1」)){

JTF。的setText(temp.substring(1));

}其他{

jtf.setText(「 - 」+溫度);

否則,如果(「退格」。等於(COMN)){

字元串溫度= jtf.getText();

如果(temp.length()> 0){

jtf.setText(temp.substring(0,temp.length() - 1)); ..

}

的} else if(「CE」等於(COMN)| |「C」等於(COMN)){

jtf.setText(「0」);

追加= FALSE;

公眾計算器(){

JFrame的JF =新的JFrame(「計算器」);

jf.add(JTF,BorderLayout.NORTH);

字串[] S1 = {「退格」,「CE」,「C」,「+」,「7」,「8」,「9」,「/」,「4」,

「5」,「6」,「*」,「1」,「2」,「3」,「 - 」,「0」,「+ / - 」,「」,。 「=」};

的JPanel JP =新的JPanel();

jf.add(JP,使用BorderLayout.CENTER);

網格布局GL =新的網格布局(5,4); jp.setLayout(GL);

JButton的[] JB =新的JButton [s1.length];

為(int i = 0;我<s1.length,我+ +){

JB [我] =新的JButton(S1由[i]);

jp.add(JB由[i]);。

JB [I] addActionListener方法,(這);

} jf.add(JP);

jtf.setEditable(假);

jf.setLocation(400,300);

jf.pack();

jf.setResizable(假);/ /設置窗口不可改變

jf.setDefaultCloseOperation(jf.EXIT_ON_CLOSE);

jf.setVisible(真);

公共靜態無效的主要(字串[] args){

新的計算器();
這個函數比較簡單,不知道能不能滿足要求

㈤ 用Java設計一個圖形界面(GUI)的計算器應用程序,完成簡單的算術運算

下午發
五分鍾搞定,先給你發個簡單的,照例子自己去做你想要的計液念算器
package aaa;
import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

public class YunSuan implements ActionListener,ItemListener
{
public static JFrame jf;
public static Container c;
public static JTextField jtf1,jtf2,jtf3;
public static JButton jb1;
public static Choice c2;

public static String fuhao="";

public YunSuan()
{
jf=new JFrame("加減喚纖乘除運鬧鏈困算");
c=jf.getContentPane();
c.setLayout(new FlowLayout());
jtf1=new JTextField(10);
jtf2=new JTextField(10);
jtf3=new JTextField(10);
c2=new Choice();
jb1=new JButton("=");

}

public void Jiemian()
{

c.add(jtf1);
c2.addItemListener(this);
c2.add("");
c2.add("+");
c2.add("-");
c2.add("*");
c2.add("/");
c.add(c2);
c.add(jtf2);
jb1.addActionListener(this);
c.add(jb1);
c.add(jtf3);

jf.setLocation(200,100);
jf.setVisible(true);
jf.pack();
}
public static void main(String args[])
{
YunSuan ys=new YunSuan();
ys.Jiemian();
}

public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
double s1=Integer.parseInt(jtf1.getText());
double s2=Integer.parseInt(jtf2.getText());
double result=0;
if(fuhao.equals("+"))
{
result=s1+s2;
String result2=String.valueOf(result);
jtf3.setText(result2);
}
if(fuhao.equals("-"))
{
result=s1-s2;
String result2=String.valueOf(result);
jtf3.setText(result2);
}
if(fuhao.equals("*"))
{
result=s1*s2;
String result2=String.valueOf(result);
jtf3.setText(result2);
}
if(fuhao.equals("/"))
{
result=s1/s2;
String result2=String.valueOf(result);
jtf3.setText(result2);
}
}

public void itemStateChanged(ItemEvent ie)
{
if(ie.getSource()==c2)
{
String str1=c2.getSelectedItem();
fanhui(str1);
}
}
public String fanhui(String str2)
{
return fuhao=str2;
}
}

㈥ 請設計一個GUI界面,參考如下界面原型實現。求大神用JAVA

importjava.awt.Color;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.util.Random;

importjavax.swing.JButton;

importjavax.swing.JFrame;

importjavax.swing.JPanel;

{

privateJButton[]btns=newJButton[7];

privateRandomrn=newRandom();

privateboolean[]flags=newboolean[33];//用來判別重復

publicMyPanel(){

init();

}

privatevoidinit(){

setTitle("MyPanel....");

setSize(540,250);

setContentPane(createPane());

}

privateJPanelcreatePane(){

JPanelpane=new脊侍JPanel(null);

pane.setBackground(Color.YELLOW);

for(inti=0;i<btns.length;i++){

btns[i]=newJButton("0");

btns[i].setBounds(20+(i*70),30,54,24);

btns[i].setBackground(Color.PINK);

pane.add(btns[i]);

btns[i].addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

while(true){

intn=rn.nextInt(34);

//如果數字被使用,或為3334就重新選數字

if(n==0||n>33||flags[n-1]){

continue;

}

//把使用了的數字設置為true,即已使用

flags[n-1]=true;

//把不用了的數字設置成未使用狀態

if(Integer.parseInt(((JButton)e.getSource())

.getText())!=0){

flags[Integer.parseInt(((JButton)e.getSource())

.getText())-1]=false;

}

((JButton)e.getSource()).setText(String.valueOf(n));

break;

}

}

});

}

JButtoncreNum=螞野虛newJButton("創建數字");

creNum.setBounds(50,150,100,30);

creNum.addActionListener(newActionListener(){

@Override

publicvoidactionPerformed(ActionEvente){

for(inti=0;i<btns.length;i++){

while(true){

intn=rn.nextInt(34);

//如果數字被使用,或為3334就重新選數字

if(n悶燃==0||n>33||flags[n-1]){

continue;

}

//把使用了的數字設置為true,即已使用

flags[n-1]=true;

//把不用了的數字設置成未使用狀態

if(Integer.parseInt(btns[i].getText())!=0){

flags[Integer.parseInt(btns[i].getText())-1]=false;

}

btns[i].setText(String.valueOf(n));

break;

}

}

}

});

pane.add(creNum);

JButtonsort=newJButton("排序");

sort.setBounds(200,150,100,30);

sort.addActionListener(newActionListener(){

@Override

publicvoidactionPerformed(ActionEvente){

//排序

String[]strs=newString[7];

//把按鈕上面的數字拿出來

for(inti=0;i<btns.length;i++){

strs[i]=btns[i].getText();

}

//開始排序

for(inti=strs.length-1;i>0;i--){

for(intj=0;j<i;j++){

if(Integer.parseInt(strs[i])<Integer

.parseInt(strs[j])){

Stringtemp;

temp=strs[i];

strs[i]=strs[j];

strs[j]=temp;

}

}

}

//排好,在顯示到按鈕上

for(intj=0;j<strs.length;j++){

btns[j].setText(strs[j]);

}

}

});

pane.add(sort);

JButtonreset=newJButton("重置");

reset.setBounds(350,150,100,30);

reset.addActionListener(newActionListener(){

@Override

publicvoidactionPerformed(ActionEvente){

flags=newboolean[33];

for(inti=0;i<btns.length;i++){

btns[i].setText("0");

}

}

});

pane.add(reset);

returnpane;

}

publicstaticvoidmain(String[]args){

MyPanelmp=newMyPanel();

mp.setVisible(true);

}

}

根據你的要求,數字不會重復,用的是冒泡排序

希望對你有幫助

如圖:

㈦ java編程採用圖形界面實現兩個內容的交換,圖形界面如下圖

以下是一個簡單的Java GUI程序,可以實現兩個內容(字元串、圖片等)之間的交換:

Copy code
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class SwapContent extends JFrame implements ActionListener {
private JLabel label1, label2;
private JButton swapBtn;

public SwapContent() {
// 設置窗口大小和標題
setSize(400, 300);
setTitle("Swap Content Demo");

// 創建標簽和按鈕模喚
label1 = new JLabel("Content A");
label2 = new JLabel("Content B");
swapBtn = new JButton("Swap");

// 設置標簽和按鈕的位置和大小
label1.setBounds(50, 50, 100, 30);
label2.setBounds(200, 50, 100, 30);
swapBtn.setBounds(150, 150, 100, 30);

// 將標簽和按鈕添加到窗口中
add(label1);
add(label2);
add(swapBtn);

// 注冊按鈕的事件監聽器
swapBtn.addActionListener(this);

// 設置窗口的默認關閉方式
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

@Override
public void actionPerformed(ActionEvent e) {
// 獲取標簽的內容
String temp = label1.getText();
label1.setText(label2.getText());
label2.setText(temp);
}

public static void main(String[] args) {
// 創建窗口對象並顯示
SwapContent sc = new SwapContent();
sc.setVisible(true);
}
}
該程序創建了一個窗口,包括兩個標簽(label1和label2)和一個按鈕(swapBtn)。當用戶點擊按鈕時,程序會交換label1和label2的內容。

在程序的actionPerformed方法中,程序將label1和label2的內容交換。具體實現是,首先使用旦冊凱label1.getText()獲取label1的內容,並將其保存到一個臨時變數temp中;然後,將label1的內容設置為label2的內容,將label2的內容設置為temp的姿裂值。這樣,label1和label2的內容就被互換了。

在main方法中,程序創建了SwapContent對象,並將其顯示出來。程序運行後,用戶可以在窗口中交換label1和label2的內容。

㈧ Java實現GUI編程基本方法都有那些

其實無論在什麼平台下,GUI應用程序的基本開發方法都是相似的。一般都包括下面這樣四個步驟:

①創建容器

首先要創建一個GUI應用程序,需要創建一個用於容納所有其它GUI組件元素的載體,Java中稱為容器。典型的包括窗口(Window)、框架(Frame/JFrame)、對話框(Dialog/JDialog)、面板(Panel/JPanel)等。只有先創建了這些容器,其它界面元素如按鈕(Button/JButton)、標簽(Label/JLabel)、文本框(TextField/JTextField)等才有地方放。

②添加組件

為了實現GUI應用程序的功能,為了與用戶交換,需要在容器上添加各種組件/控制項。這需要根據具體的功能要求來決定用什麼組件。例如,如果需要提示信息,可用標簽(Label/JLabel);如果需要輸入少量文本,可用文本框(TextField/JTextField);如果需要輸入較多文本,可用文本區域(TextArea/JTextArea);如果需要輸入密碼,可用密碼域(JPasswordField)等等。

③安排組件
與傳統的Windows環境下的GUI軟體開發工具不同,為了更好地實現跨平台,Java程序中各組件的位置、大小一般不是以絕對量來衡量,而是以相對量來衡量。例如有時候,程序的組件的位置是按"東/East"、"西/West"、"南/South"、"北/North"、"中 /Center"這種方位來標識的。因此,在組織界面時,除了要考慮所需的組件種類外,還需要考慮如何安排這些組件的位置與大小。這一般是通過設置布局管理器(Layout Manager)及其相關屬性來實現的。事實上上述按方位來安排組件就是採用了Java中多種布局管理器里的BorderLayout布局管理器。

④處理事件

為了完成一個GUI應用程序所應具備的功能,除了適當地安排各種組件產生美觀的界面外,還需要處理各種界面元素事件,以便真正實現與用戶的交換,完成程序的功能。在Java程序中這一般是通過實現適當的事件監聽者介面來完成的。比如如果需要響應按鈕事件,就需要實現 ActionListener監聽者介面;如果需要響應窗口事件,就需要實現WindowListener監聽者介面。

閱讀全文

與javagui圖形界面編程實例相關的資料

熱點內容
我的世界如何將一個伺服器弄崩 瀏覽:6
php網站訪問量代碼 瀏覽:431
怠速壓縮機咔咔響 瀏覽:176
怎麼才能修改APP中的數據 瀏覽:688
哪裡有搶單的app 瀏覽:462
演算法概率題 瀏覽:465
長方形拉伸的命令 瀏覽:279
python代碼函數編程技術 瀏覽:194
java正則式 瀏覽:429
外包程序員好進嗎 瀏覽:384
雲伺服器服務模型架構 瀏覽:901
刪文件夾什麼指令 瀏覽:509
極速抖音已加密怎麼辦 瀏覽:603
matlab拉格朗日演算法框圖 瀏覽:430
華為公司計算機視覺演算法顧問 瀏覽:254
夏老師講的單片機 瀏覽:298
在編程中如何將圖片放大 瀏覽:163
appstore怎麼看是否付費 瀏覽:603
程序員和碩士 瀏覽:951
gcc編譯消耗內存過多 瀏覽:281