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)//创建窗口并可见

}

}

import javax.swing.*

import javax.swing.text.*

import java.awt.*

import java.awt.event.*

/**

* @author Hardneedl

*/

final class ButtonDemo extends JFrame {

public String getTitle() {return "ButtonDemo"}

static private final Dimension size = new Dimension(600,400)

public Dimension getPreferredSize() {return size}

public Dimension getMaximumSize() {return size}

public Dimension getMinimumSize() {return size}

public Dimension getSize(){return size}

private class ButtonAction extends AbstractAction{

private JTextComponent t

private String n

private ButtonAction(String name,JTextComponent t) {

super(name)

n=name

this.t=t

}

public void actionPerformed(ActionEvent e) {

t.setText(n)

}

}

private JButton b0,b1

private JTextField t

ButtonDemo() throws HeadlessException {

init()

attachListeners()

doLay()

}

private void init(){

t=new JTextField(20)

b0=new JButton(new ButtonAction("YES",t))

b1=new JButton(new ButtonAction("NO",t))

}

private void attachListeners(){

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

}

private void doLay(){

Container container = getContentPane()

JPanel p = new JPanel()

p.add(b0)

p.add(b1)

container.add(p,BorderLayout.NORTH)

container.add(t,BorderLayout.SOUTH)

pack()

setVisible(true)

}

public static void main(String...args) {

System.setProperty("swing.defaultlaf","com.sun.java.swing.plaf.windows.WindowsLookAndFeel")

SwingUtilities.invokeLater(

new Runnable(){

public void run() {

new ButtonDemo()

}

}

)

}

}

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


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

原文地址: http://outofmemory.cn/yw/8063334.html

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

发表评论

登录后才能评论

评论列表(0条)

保存