AVA基础——图形化界面(GUI)

GUI(图形化界面)

JAVA为GUI提供的对象都存在java.Awt和java.Swing的两个包中。

这里主要说Awt包中的内容。


Awt包

java.Awt包中提供了两种基类表示图形界面元素:Component和MenuComponent。
前者代表一个能以图形化方式显示出来并与用户交互的对象。例如Button代表一个按钮。TextField代表一个文本框等。
后者则代表图形界面的菜单组件,包括MenuBar(菜单条),MenuItem(菜单项)等子类。
下面是Component的继承关系图:



注:Container为容器,是一个特殊组件,该组件中可以通过add方法添加其他组件进来。

布局管理器

容器中的排放方式就是布局。
常见的布局管理器:
FlowLayout(流式布局管理器)
从左到右的顺序排列,Panel默认的布局管理器。
BorderLayout(边界布局管理器)
东南西北中,Frame默认的布局管理器。
GridLayout(网格式布局管理器)
规则的矩阵
CardLayout(卡片式布局管理器)
选项卡
GridBagLayout(网格包布局管理器)
非规则的矩阵


创建图形化界面的流程

1,创建frame窗体。
2,对窗体进行基本设置。
比如大小——setSize(横,高);位置——setLocation(x,y);
大小与位置——setBounds(x,y,横,高);流式布局——setLayout(new FlowLayout())。
3,定义组件。
4,将组件通过窗体的add方法添加到窗体中。
5,让窗体显示,通过setVisible(true)

注:以上仅仅把窗体界面做出来,并没有实现功能。

例:
/*
简单的实现图形化界面
Frame 是带有标题和边框的顶层窗口。
*/
import java.awt.*;

class  AwtDemo
{
	public static void main(String[] args) 
	{
		//创建一个Frame窗口
		Frame f=new Frame("测试窗口");
		//设置窗口界面
		f.setBounds(500,400,500,300);
		f.setLayout(new FlowLayout());
		f.add(new Button("关闭"));
		//让窗口显示
		f.setVisible(true);

	}
}

事件处理

在awt编程中,所有事件必须由特定对象(事件监听器)来处理。即在各个组件上加上事件处理机制。
类似在门上装上监听器,监听一些动作,如:砸ÿ
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的Java GUI计算器: ```java import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Calculator extends JFrame implements ActionListener { private JTextField inputField; private JButton[] buttons; private String[] buttonLabels = {"7", "8", "9", "÷", "4", "5", "6", "×", "1", "2", "3", "-", "0", ".", "=", "+"}; private double num1, num2, result; private String operator; public Calculator() { setTitle("Calculator"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(300, 350); JPanel panel = new JPanel(new GridLayout(5, 4)); inputField = new JTextField(); inputField.setEditable(false); add(inputField, BorderLayout.NORTH); buttons = new JButton[buttonLabels.length]; for (int i = 0; i < buttonLabels.length; i++) { buttons[i] = new JButton(buttonLabels[i]); buttons[i].addActionListener(this); panel.add(buttons[i]); } add(panel); setVisible(true); } public void actionPerformed(ActionEvent e) { String btnText = ((JButton) e.getSource()).getText(); if (btnText.equals("C")) { inputField.setText(""); } else if (btnText.equals("CE")) { inputField.setText(""); num1 = num2 = result = 0; } else if (btnText.equals("÷")) { num1 = Double.parseDouble(inputField.getText()); operator = "÷"; inputField.setText(""); } else if (btnText.equals("×")) { num1 = Double.parseDouble(inputField.getText()); operator = "×"; inputField.setText(""); } else if (btnText.equals("-")) { num1 = Double.parseDouble(inputField.getText()); operator = "-"; inputField.setText(""); } else if (btnText.equals("+")) { num1 = Double.parseDouble(inputField.getText()); operator = "+"; inputField.setText(""); } else if (btnText.equals("=")) { num2 = Double.parseDouble(inputField.getText()); if (operator.equals("÷")) { result = num1 / num2; } else if (operator.equals("×")) { result = num1 * num2; } else if (operator.equals("-")) { result = num1 - num2; } else if (operator.equals("+")) { result = num1 + num2; } inputField.setText(Double.toString(result)); } else { inputField.setText(inputField.getText() + btnText); } } public static void main(String[] args) { Calculator calc = new Calculator(); } } ``` 这个计算器使用了`JFrame`和`JButton`等Swing组件来构建GUI界面,并且实现了`ActionListener`接口来响应按钮点击事件。在`actionPerformed`方法中,通过判断按钮的文本内容来进行不同的操作,例如清除输入框、进行运算、显示结果等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值