GUI程序设计(java)

GUI程序设计(java),第1张

=====================第一个类=============================

/**

*

* 实现了系统计算器连续按"="和按"+","-","*","/"进行累记运算的模式

*

* */

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 = 0i <10i++) {

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 = 0i <17i++) {

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=0i<index.lengthi++){

jpnSouth.add(btnGrp[index[i]])

}

}

/*给按钮添加监听器*/

public void addListener() {

/陵基/给数字按钮添加监听器,btnGrp[10]是"."号

for (int i = 0i <= 10i++) {

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 = 11i <= 14i++) {

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.setDefaultLookAndFeelDecorated(false)//使用windows视感

calframe.setResizable(false)//窗口不可调大小

}

public static void main(String[] args) {

Test test = new Test()

}

}

对于 Python 中的 GUI 程序,一般可以从辩数三个要素来考虑,它们是:

输入:指用户在界面上进行的交互 *** 作,例如鼠标点击、键盘输入等。在 Python 的 GUI 程序中,常常使用组件如文本框、按钮、下拉框等来接收用户的输入。

处理:指对用户输入的数据或 *** 毁档作进行处理,一般会包括数据的验证、计算、存储等过程。在 Python 的 GUI 程序中,可以使用函数、类等来实现数据的处理。

输出:指将处理后的数据或结果输出到界面上,让用户进行查看或 *** 作。在 Python 的 GUI 程序中,可以使用标签、文本框、列表框等组件来显示处理结果。

总之,Python 中的 GUI 程序需要考虑用户输入、数据处理和结果输出等三个要素,通过合理的设计和使携余首用相应的组件和工具,可以实现用户友好的交互体验和高效的数据处理功能。

GUI代表graphics user interface 一般翻译为图形用户接口或图形用户界面

GUI就是图形用户界面,是基于图形的界面,windows就是一个图形用户界面的 *** 作系统,而DOS是基于命令提示符的 *** 作系统,GUI编程就是编出一个图形用户界面的软件.

补充 图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机 *** 作用宴蚂户界面。

与早期计算机使用的命令行界面相比,图形界面对于用户来说在裂斗视觉上更易于接受。然而这界面若要通过在显示屏的特定位置,以”各种美观而不单调的视觉消息“提示用户”状态的改肆祥磨变“,势必得比简单的消息呈现花上更多的计算能力。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12507506.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存