java的gui程序设计

java的gui程序设计,第1张

效果图

参考代码

//导入swing图形界面开发常用的3个包

import java.awt.*

import java.awt.event.*

import javax.swing.*

public class AddFrame extends JFrame implements ActionListener {

JTextField jtf1, jtf2, jtf3

public AddFrame() {

JPanel jpcenter = new JPanel(new GridLayout(3, 2)) //创建面板,设置布局为3行2列的网格布局

JLabel jl1 = new JLabel("First Number:")

jtf1 = new JTextField()

jpcenter.add(jl1)

jpcenter.add(jtf1)

JLabel jl2 = new JLabel("Second Number:")

jtf2 = new JTextField()

jpcenter.add(jl2)

jpcenter.add(jtf2)

JLabel jl3 = new JLabel("The Sum:")

jtf3 = new JTextField()

jtf3.setBackground(Color.WHITE) // 文本框背景色为白色

jtf3.setEditable(false)// 文本框不许编辑

jpcenter.add(jl3)

jpcenter.add(jtf3)

add(jpcenter,BorderLayout.CENTER)//窗口默认布局为BorderLayout .把jpcenter放到窗口的中间

JButton jbAdd = new JButton("Add")

jbAdd.addActionListener(this)//添加点击事件的处理

add(jbAdd, BorderLayout.SOUTH)//把按钮放到窗口的南面

setTitle("Add Calculator")

setSize(350, 200)

setLocationRelativeTo(null)//窗口居中

setDefaultCloseOperation(EXIT_ON_CLOSE)//点击右上角的关闭按钮时,结束程序

}

//点击按钮时处理该事件

public void actionPerformed(ActionEvent e) {

try {

double num1=Double.parseDouble(jtf1.getText())

double num2=Double.parseDouble(jtf2.getText())

jtf3.setText(num1+num2+"")

}catch (Exception ex) {

//输入了字母汉字,不符合规范的输入时进行提示

JOptionPane.showMessageDialog(this, "输入了错误的字符或者格式,请输入数字", "错误!", JOptionPane.ERROR_MESSAGE)

}

}

public static void main(String[] args) {

new AddFrame().setVisible(true)//创建窗口并可见

}

}

其实无论在什么平台下,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监听者接口。

效果图

参考代码

import java.awt.*

import java.awt.event.*

import javax.swing.*

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=e.getKeyChar()//得到键入的字符

repaint()//重绘

}

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

// c=e.getKeyChar()

// repaint()

}

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

}

char c 

@Override

public void paint(Graphics g) {

super.paint(g)

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

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

Font font = g.getFont()

g.setColor(Color.BLUE)

g.setFont(new Font(font.getName(),font.getStyle(),20))

g.drawString(c+"",100, 100) //绘制

}

}

}


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

原文地址:https://54852.com/yw/12160183.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存