導航:首頁 > 編程語言 > javagui編程實例

javagui編程實例

發布時間:2023-06-14 06:52:05

1. java編程中,GUI界面的一般框架有什麼希望大神給寫個程序實例,程序內容包括布局的應用,多個

java GUI一般,通過AWT,SWING 實現

其餘比較流行的是SWT,但是它不是官方庫, 並且旦核不能跨平台

//注意:

Swing, 所以很多不涉及界面組件的一些類比如布局 等Swing也可以使用

但是組件,最好不要混用, 容易出現一些組件疊加,等顯示錯誤 比如JButton TextField等混用


//參考代碼

下面使用Swing組件來實嘩告現

importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;

//本類實現了ActionListener介面.一個ActionListener可以響應JMenuItem和JButton的動作
//本類實現FocusListener介面,一個FocusListener可以響應JTextField,JButton等
//JButton響應多個事件介面
,FocusListener{
privateJTextFieldjtf1;
privateJTextFieldjtf2;
privateJTextFieldjtf3;
privateJButtonjb1;

publicMyGuiFrame(){
//----------窗口屬性亂遲明的設置----------
setTitle("窗口應用程序");//窗口標題
setSize(380,120);//窗口大小
setLocationRelativeTo(null);//窗口居於屏幕中央
setDefaultCloseOperation(EXIT_ON_CLOSE);//點擊關閉窗口後退出jvm虛擬機
getContentPane().setLayout(newBorderLayout(5,3));//邊界布局,水平間距5,垂直間距3

//菜單欄組件初始化
initMenu();

//主要面板的初始化
initPanel();
}

privatevoidinitPanel(){
JPaneljp=newJPanel(newFlowLayout(FlowLayout.CENTER));//流式布局
jtf1=newJTextField(8);
jtf1.addFocusListener(this);//添加焦點響應
JLabeljl=newJLabel("+");
jtf2=newJTextField(8);
jtf2.addFocusListener(this);
jb1=newJButton("=");
jb1.addActionListener(this);//添加動作響應
jb1.addFocusListener(this);//添加焦點響應

jtf3=newJTextField(8);
jtf3.setEditable(false);

jp.add(jtf1);
jp.add(jl);
jp.add(jtf2);
jp.add(jb1);
jp.add(jtf3);
getContentPane().add(jp,BorderLayout.CENTER);

}

privatevoidinitMenu(){//菜單欄的初始化和設置
JMenuBarjmb=newJMenuBar();
JMenujm1=newJMenu("系統");
JMenuItemjmi101=newJMenuItem("退出");
jmi101.addActionListener(this);//添加動作響應
JMenujm2=newJMenu("幫助");
JMenuItemjmi201=newJMenuItem("功能說明");
jmi201.addActionListener(this);
jm1.add(jmi101);
jm2.add(jmi201);
jmb.add(jm1);
jmb.add(jm2);
setJMenuBar(jmb);//設置菜單欄
}

//main方法,創建對象窗口,並且設置可見
publicstaticvoidmain(String[]args){
newMyGuiFrame().setVisible(true);
}

//動作響應處理
publicvoidactionPerformed(ActionEvente){
Stringcmd=e.getActionCommand();//根據命令來區分不同的操作
if(cmd.equals("退出")){
System.exit(0);
}
if(cmd.equals("功能說明")){
JOptionPane.showMessageDialog(this,"加法");
}
if(cmd.equals("=")){

Strings1=jtf1.getText().trim();
Strings2=jtf2.getText().trim();
if(s1.equals("")){
s1="0";
}
if(s2.equals("")){
s2="0";
}
doublenum1=Double.parseDouble(s1);//從字元串轉小數
doublenum2=Double.parseDouble(s2);
jtf3.setText((num1+num2)+"");//數字類型轉字元串類型

}
}

//焦點響應處理
publicvoidfocusGained(FocusEvente){//獲得焦點
JComponentcmp=(JComponent)e.getComponent();//根據事件來源組件來區分不同的操作
if(cmp==jtf1||cmp==jtf2){
cmp.setBorder(BorderFactory.createLineBorder(Color.BLUE));//設置邊框
}
if(cmp==jb1){
jb1.setForeground(Color.RED);//設置文字顏色
}
}

publicvoidfocusLost(FocusEvente){//失去焦點
JComponentcmp=(JComponent)e.getComponent();
if(cmp==jtf1||cmp==jtf2){
cmp.setBorder(BorderFactory.createLineBorder(Color.GRAY));
}
if(cmp==jb1){
jb1.setForeground(Color.BLACK);
}
}

}


運行效果如圖

2. 用JAVA編寫一個GUI記事本程序,實現文本的輸入,保存,修改,打開操作

代碼如下:

importjava.io.*;
importjava.awt.*;
importjava.awt.event.*;

publicclassjtxtfm{
publicstaticvoidmain(Stringargs[]){
jtxtfrmfm=newjtxtfrm();
}
}
{
FileDialogop,sv;
Buttonbtn1,btn2,btn3;
TextAreatarea;
jtxtfrm(){
super("讀寫文件");
setLayout(null);
setBackground(Color.cyan);
setSize(600,300);
setVisible(true);
btn1=newButton("打開");
btn2=newButton("保存");
btn3=newButton("關閉");
tarea=newTextArea("");
add(btn1);add(btn2);add(btn3);add(tarea);
tarea.setBounds(30,50,460,220);
btn1.setBounds(520,60,50,30);
btn2.setBounds(520,120,50,30);
btn3.setBounds(520,180,50,30);
op=newFileDialog(this,"打開",FileDialog.LOAD);
sv=newFileDialog(this,"保存",FileDialog.SAVE);
btn1.addActionListener(this);
btn2.addActionListener(this);
btn3.addActionListener(this);
addWindowListener(
newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
setVisible(false);
System.exit(0);
}
}
);
}

publicvoidactionPerformed(ActionEvente){
if(e.getSource()==btn1){
Stringstr;
op.setVisible(true);
try{
Filef1=newFile(op.getDirectory(),op.getFile());
FileReaderfr=newFileReader(f1);
BufferedReaderbr=newBufferedReader(fr);
tarea.setText("");
while((str=br.readLine())!=null)tarea.append(str+' ');
fr.close();
}
catch(Exceptione1)
{}
}

if(e.getSource()==btn2){
sv.setVisible(true);
try{
Filef1=newFile(sv.getDirectory(),sv.getFile());
FileWriterfw=newFileWriter(f1);
BufferedWriterbw=newBufferedWriter(fw);
Stringgt=tarea.getText();
bw.write(gt,0,gt.length());
bw.flush();
fw.close();
}
catch(Exceptione2)
{}
}

if(e.getSource()==btn3){
System.exit(0);
}

}
}

效果圖:

3. JAVA語言的GUI實例

GUI做的計算器,可以查考一下,組件、事件等

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

public class Calculator extends JFrame{

private Container container;//框架
private JTextField tf;//定殲斗義文本框
private Panel panel;
private String cmd;
private double result;//運算結果
private boolean start;//運算開始判斷

Calculator(){

super("計算器");
container = getContentPane();
container.setLayout(new BorderLayout());

//添加文本框
tf = new JTextField("0.0");
container.add(tf,BorderLayout.NORTH);
tf.setHorizontalAlignment(JTextField.RIGHT);
tf.setEditable(false);

//嵌套容器
panel = new Panel();
container.add(panel);

start = true;
result = 0;
//最後坦肢運算等號
cmd = "=";

ActionListener insert = new InsertAction();
ActionListener command = new CommandAction();

/讓改世/調用創建Button方法
addButton("1",insert);
addButton("2",insert);
addButton("3",insert);
addButton("0",insert);
addButton("*",command);
addButton("Back",insert);
addButton("4",insert);
addButton("5",insert);
addButton("6",insert);
addButton("+",command);
addButton("/",command);
addButton("Clear",insert);
addButton("7",insert);
addButton("8",insert);
addButton("9",insert);
addButton("-",command);
addButton(".",insert);
addButton("=",command);
setSize(400,200);
}

private void addButton(String str,ActionListener listener){

//添加Button方法(操作類型、注冊監聽器)
JButton button=new JButton(str);
button.addActionListener(listener);
panel.setLayout(new GridLayout(3,6));
panel.add(button);
}

private class InsertAction implements ActionListener{

//插入,insert
public void actionPerformed(ActionEvent event){
String input=event.getActionCommand();
if (start)
{
tf.setText("");
start=false;
}
if(input.equals("Back"))
{
String str=tf.getText();
if(str.length()>0)
tf.setText(str.substring(0,str.length()-1));
}
else if(input.equals("Clear"))
{
tf.setText("0");
start=true;
}
else
tf.setText(tf.getText()+input);
}
}

private class CommandAction implements ActionListener{

//計算,command
public void actionPerformed(ActionEvent e){

String command=e.getActionCommand();
if(start)
{
cmd=command;
}
else
{
calculate(Double.parseDouble(tf.getText()));
cmd=command;
start=true;
}
}
}

public void calculate(double x){

//加減乘除運算
if (cmd.equals("+")) result+=x;
else if (cmd.equals("-")) result-=x;
else if (cmd.equals("*")) result*=x;
else if (cmd.equals("/")) result/=x;
else if (cmd.equals("=")) result= x;
tf.setText(""+ result);
}

public static void main(String []args){

Calculator mycalculator=new Calculator();
mycalculator.setLocation(300,300);
mycalculator.setVisible(true);
}

}

4. 使用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){

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

閱讀全文

與javagui編程實例相關的資料

熱點內容
如何看漫威漫畫app 瀏覽:789
安卓手機如何按拼音排布app 瀏覽:721
java中exceptionin 瀏覽:882
java131 瀏覽:868
學英語不登錄的app哪個最好 瀏覽:299
安卓的後台運行怎麼設置 瀏覽:135
如何撰寫論文摘要以及編譯sci 瀏覽:416
安卓如何使用推特貼吧 瀏覽:429
怎樣避免程序員入獄 瀏覽:856
蘋果方塊消除安卓叫什麼 瀏覽:535
安卓世界征服者2怎麼聯機 瀏覽:297
國企招的程序員 瀏覽:969
哪個app可以看watch 瀏覽:518
dns備用什麼伺服器 瀏覽:1002
中達優控觸摸屏編譯失敗 瀏覽:80
上海科納壓縮機 瀏覽:680
python工時系統 瀏覽:551
查好友ip命令 瀏覽:118
通達信python量化交易 瀏覽:506
cnc編程工程師自我評價 瀏覽:132