导航:首页 > 编程语言 > 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编程工程师自我评价 浏览:133