JAVA程序设计,使用GUI界面

JAVA程序设计,使用GUI界面,第1张

效果图

参考代码

import javaawt;

import javaawtevent;

import javaxswing;

public class KeyFrame extends JFrame implements KeyListener{

JLabel jlkey;

public KeyFrame() {

jlkey = new JLabel("请输入字母或者数字,其他字符不显示");

add(jlkey);

addKeyListener(this);

setLayout(new FlowLayout());

setSize(260, 160);

setTitle("输入");

setLocationRelativeTo(null);

setDefaultCloseOperation(EXIT_ON_CLOSE);

setVisible(true);

}

public static void main(String[] args) {

new KeyFrame();

}

public void keyTyped(KeyEvent e) {//敲击键盘

c=egetKeyChar();//得到键入的字符

repaint();//重绘

}

public void keyPressed(KeyEvent e) {//按下键盘

// c=egetKeyChar();

// repaint();

}

public void keyReleased(KeyEvent e) {//释放键盘

}

char c ;

@Override

public void paint(Graphics g) {

superpaint(g);

//如果只能显示输入的是字母或者数字,那么需要if判断下

if((c<='Z'&& c>='A')||(c<='z'&&c>='a')||(c<='9'&&c>='0')){// 注意比较的是字符 '9' 和字符'0'

Font font = ggetFont();

gsetColor(ColorBLUE);

gsetFont(new Font(fontgetName(),fontgetStyle(),20));

gdrawString(c+"",100, 100); //绘制

}

}

}

1、Java本身做界面,用到Java Swing(事件+驱动方式)的知识(你可以下个java swing文档看看,一般两三天就可以看完做界面) java的基本知识就可以实现业务层,数据库 *** 作,最简单也是JDBC,也可以使用数据库 *** 作框架(ibatis/hibernate)

package test;

import javaawt;

import javaawtevent;

import javaxswing;

public class Z extends JFrame implements ActionListener, FocusListener {

private String[] total = { "1", "2", "3", "+", "4", "5", "6", "-", "7", "8", "9", "", "0", "", "=", "/" }; // 总数组

private String[] other = { "clear", "delete" }; // 其它功能数组

private String[] symbol = { "+", "-", "", "/" }; // 符号数组

private String multinumber = "0", operator1 = "", exists = "", operator2 = null, s = "";

// multinumber(多位数) operator1(运算符) exists(存在的)

private double d1, d2 = 0;

private int Count = 0;

JPanel jptotal = new JPanel(); // 总面板

JTextField jtexternal = new JTextField("0"); // 外部文本框

JTextField jtinside = new JTextField(); // 内部文本框

JPanel jptop1 = new JPanel(); // 顶部面板1

JPanel jptop2 = new JPanel(); // 顶部面板2

JPanel jpmiddle = new JPanel(); // 中部面板

public Z() {

jptotalsetLayout(new BorderLayout());

// 使用边界布局管理器

jptop1setLayout(new GridLayout(2, 0));

jptop1add(jtexternal);

jptop2setLayout(new GridLayout(0, 2));

for (int i = 0; i < otherlength; i++) {

JButton jbi = new JButton("" + other[i]);

jbisetSize(100, 10);

jptop2add(jbi);

jbiaddActionListener(this);

}

jpmiddlesetLayout(new GridLayout(4, 0));

for (int i = 0; i < totallength; i++) {

JButton jbi = new JButton("" + total[i]);

jpmiddleadd(jbi);

jbiaddActionListener(this);

}

jtexternaladdFocusListener(this);

jtexternaladd(jtinside);

jtinsideaddFocusListener(this);

// 上面三行代码的作用是让文本框不可被选中

jptop1add(jptop2);

jptotaladd(jptop1, "North");

// 以jp1为一个整体,让jp1里面的内容从最上面开始填充

jptotaladd(jpmiddle);

add(jptotal);

setVisible(true);

setSize(500, 500);

thissetLocationRelativeTo(null);

thissetDefaultCloseOperation(EXIT_ON_CLOSE);

}

// ctrl+/ :注释

public void actionPerformed(ActionEvent e) throws ArithmeticException {

try {

String inputing = egetActionCommand();

// 表示获取当前输入的内容

if (inputingequals("")) {

Count++;

}

exists = jtexternalgetText();

if (operator2 != null) {

int k = 0;

for (int i = 0; i < symbollength; i++) {

if (operator2equals(symbol[i])) {

k = k + 1;

}

if (inputingequals(symbol[i])) {

k = k + 1;

}

if (k == 2) {

jtexternalsetText(existssubstring(0, existslength() - 1) + inputing);

operator1 = inputing;

return;

}

// 实现四则运算符不可同时存在,新输入的替换旧的

if (operator2equals(symbol[i]) && inputingequals("")) {

return;

}

// 实现四则运算符和点不可挨着出现(点后面可以出现四则运算符,点前面不可出现)

}

}

if (existsequals("0")) {

if (inputingequals("") || (inputingequals("+")) || (inputingequals("-")) || (inputingequals(""))

|| (inputingequals("/"))) {

jtexternalsetText("0" + inputing);

} else {

jtexternalsetText(inputing);

}

} else {

jtexternalsetText(exists + inputing);

}

// 实现如果0前面没有非0数字的话,那么无论输入多少次0,都只显示一个0,如果输入其它数字,0将会被替换

if ((d1 == 00 || d2 == 00) && inputingequals("=") && !existssubstring(0, 1)equals("0")) {

return;

}

// 实现如果文本框内存在数字,那么输入等号,将打印其本身

if (inputingequals("clear")) {

multinumber = "0";

exists = "";

operator1 = "";

jtexternalsetText("0");

operator2 = null;

d2 = 0;

s = "";

Count = 0;

d1 = 00;

// 实现,当点击clear时,文本框内将被清空至0,所有数据都将还原至初始状态

} else if (inputingequals("delete")) {

if (existslength() <= 1 || sequals("=")) {

jtexternalsetText("0");

multinumber = "0";

exists = "";

operator1 = "";

operator2 = null;

d2 = 0;

s = "";

Count = 0;

d1 = 0;

// 实现,按delete删除刚输入的内容,如果将最后一个数字删除,那么效果同按clear

} else {

if (inputingequals("+") || inputingequals("-") || inputingequals("") || inputingequals("/")) {

Count = 1;

}

jtexternalsetText(existssubstring(0, existslength() - 1));

// 将operator2存储上一次值

operator2 = existssubstring(existslength() - 2, existslength() - 1);

/

实现如果四则运算符后面有数字的话

那么如果此时按删除键

删除之后如果新输入的还是四则运算符话

那么将会将原来的四则运算符替换成新输入的

/

}

} else if (!inputingequals("+") && !inputingequals("-") && !inputingequals("") && !inputingequals("/")

&& !inputingequals("=")) {

// 判断输入是否为数字

if (sequals("=")) {

if (existsequals("除数不能为0") || new Double(exists) == d1) {

if (inputingequals("")) {

jtexternalsetText("0" + inputing);

} else {

jtexternalsetText(inputing);

}

}

s = "";

}

// 实现一次计算完成之后,可以进行新的运算

if (multinumber == null) { // 多位数计算

multinumber = inputing;

} else {

multinumber += inputing;

}

d1 = new Double(multinumber);

if (operator1equals("+")) { // 进行四则运算

if (d2 == 0) {

if (operator1equals("") || operator1equals("/")) {

d2 = 1;

}

}

// 实现,当四则运算符后面没有数字时,那么输入等号后结果将为符号前面的结果,如果符号前面只有一个数字,那么将打印自身

d1 = d1 + d2;

} else if (operator1equals("-")) {

d1 = d2 - d1;

} else if (operator1equals("")) {

d1 = d1 d2;

} else if (operator1equals("/")) {

d1 = d2 / d1;

}

// 利用临时变量f2,实现四则运算

operator2 = inputing;

} else if (!inputingequals("=")) { // [四则运算符] 输入等号后继续进行计算

multinumber = "0";

operator1 = inputing;

d2 = d1;

operator2 = inputing;

s = "";

Count = 0;

// 实现小数运算

} else { // 就是 [=] 得出最终结果

jtexternalsetText("" + d1);

Count = 0;

s = "=";

multinumber = "0";

if (operator2equals("0") && "/"equals(operator1)) {

operator2 = null;

d1 = 0;// 将非法运算值替换成正确值

throw new ArithmeticException();// 指定抛出异常的条件

//赋值计算不抛算数异常,如果想让其抛出,必须指定条件重新抛出异常

} else {

operator1 = inputing;

operator2 = null;

d2 = 0;

} // 计算结果

if (inputingequals("=") && (d1 == 00 || d2 == 00)) {

return;

}

// 实现等号不可重复输入

}

} catch (ArithmeticException e1) {

jtexternalsetText("除数不能为0");

// 指定抛出异常内容

}

}

public static void main(String[] args) {

new Z();

}

public void focusGained(FocusEvent e) {

jtinsiderequestFocus();

// 让焦点聚焦到内部文本框,实现外部文本框的不可聚焦功能

}

public void focusLost(FocusEvent e) {

}

}

以上就是关于JAVA程序设计,使用GUI界面全部的内容,包括:JAVA程序设计,使用GUI界面、Java PC做界面程序,用什么工具、如何在Java中利用图形界面技术设计一个能够完成加、减、乘、除和取余运算的图形用户界面应用程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/9340688.html

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

发表评论

登录后才能评论

评论列表(0条)

保存