首页  >  文章  >  Java  >  Java图形用户界面框架

Java图形用户界面框架

王林
王林原创
2024-08-30 15:08:53614浏览

GUI 被定义为具有用户友好组件(如按钮、文本字段等)以使用户轻松与软件交互的界面。在图形用户界面中,要执行的操作是通过使用小图形或图片来表示的。在这里,重点是用户操作。用户可以使用鼠标进行交互,通过单击特定图形来选择要执行的操作。例如,如果用户想要打印文件,他所需要做的就是单击描绘打印机的小图形。在本主题中,我们将学习 Java GUI 框架。

广告 该类别中的热门课程 JAVA 掌握 - 专业化 | 78 课程系列 | 15 次模拟测试

开始您的免费软件开发课程

网络开发、编程语言、软件测试及其他

Java AWT 框架

AWT 是用于构建 GUI 或基于窗口的应用程序的 API。

它有各种组件,例如Button、TextField、Checkbox、List。

AWT 调用操作系统子例程来创建文本框、复选框、按钮等组件。这就是为什么它依赖于平台。

有关 AWT 层次结构的一些基本概念如下:

  • Container:Container是一个类,包含按钮、文本字段、标题栏、菜单栏等所有组件
  • 组件:组件是 GUI 对象,例如按钮、标签、文本字段、清单。
  • Panel:Panel 是一个容器类。它为应用程序创建了一个可以容纳所有组件的空间。它继承了容器类。该面板不包含菜单栏或标题栏,但可以包含其他组件,如文本字段、按钮。
  • Frame:Frame 是一个容器类。它包含菜单栏和标题栏,还可以包含其他组件。

AWT 程序:

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
class AWTCalculator extends Frame implements ActionListener
{
Label label1,label2,label3;
TextField text1,text2,text3;
Button button1,button2,button3,button4,button5;
public AWTCalculator()
{
label1 = new Label("Var 1");
label2 = new Label("Var 2");
label3 = new Label("Result");
text1 = new TextField(10);
text2 = new TextField(10);
text3 = new TextField(10);
button1 = new Button("Add");
button2 = new Button("Sub");
button3 = new Button("Multi");
button4 = new Button("Div");
button5 = new Button("Close");
add(label1);
add(text1);
add(label2);
add(text2);
add(label3);
add(text3);
add(button1);
add(button2);
add(button3);
add(button4);
add(button5);
setSize(200,200);
setTitle("AWTCalculator");
setLayout(new FlowLayout());
button1.addActionListener(this);
button2.addActionListener(this);
button3.addActionListener(this);
button4.addActionListener(this);
button5.addActionListener(this);
}
public void actionPerformed(ActionEvent action) {
double a1=0,b1=0,c1=0;
try
{
a1 = Double.parseDouble(text1.getText());
}
catch (NumberFormatException e) {
text1.setText("Invalid input entered");
}
try
{
b1 = Double.parseDouble(text2.getText());
}
catch (NumberFormatException e) {
text2.setText("Invalid input entered");
}
if(action.getSource()==button1)
{
c1 = a1 + b1;
text3.setText(String.valueOf(c1));
}
if(action.getSource()==button2)
{
c1 = a1 - b1;
text3.setText(String.valueOf(c1));
}
if(action.getSource()==button3)
{
c1 = a1 * b1;
text3.setText(String.valueOf(c1));
}
if(action.getSource()==button4)
{
c1 = a1 / b1;
text3.setText(String.valueOf(c1));
}
if(action.getSource() == button5)
{
System.exit(0);
}
}
public static void main(String[] args)
{
AWTCalculator calC = new AWTCalculator();
calC.setVisible(true);
calC.setLocation(300,300);
}
}

输出:

Java图形用户界面框架

Java图形用户界面框架

Swing Java 框架

  • Java swing 不是抽象窗口工具包(AWT)的放置位置。由于其独立于平台的功能,它是对 AWT 现有 api 的增强。
  • AWT 和 Swing 类似,大多数 AWT 组件在 swing 中都有对应的组件。
  • 建议将 AWT 仅限制为事件处理机制,并且 UI 组件的创建和渲染应仅使用 swing 来完成。

以下是使用 Java swing 的令人信服的理由:

  • 丰富的组件集减轻了开发人员的工作量。
  • 组件内置撤消/重做支持。
  • 2D 图形渲染更简单
  • 可插入(可定制)的外观和感觉。

1.用于灵活 UI 渲染的模型-视图-控制器(MVC)设计模式

代码:

import javax.swing.JButton;
import javax.swing.JFrame;
public class JButtonDemo {
JButtonDemo(){
JFrame newFrame=new JFrame();
// Creating Button
JButton b=new JButton("Click"); b.setBounds(50,50,90,50);
//Adding button onto the frame
newFrame.add(b);
// Setting Frame size. This is the window size newFrame.setSize(300,200);
newFrame.setLayout(null); newFrame.setVisible(true);
newFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) { new JButtonDemo();
}
}

输出:

Java图形用户界面框架

2.将图像添加到按钮

代码:

import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; public class JButtonDemo {
JButtonDemo(){
JFrame newFrame=new JFrame(); Icon icon = new ImageIcon("edit.png");
// Creating Button
JButton b=new JButton(icon); b.setBounds(50,50,90,50);
//Adding button onto the frame newFrame.add(b);
// Setting Frame size. This is the window size
newFrame.setSize(300,200);
newFrame.setLayout(null); newFrame.setVisible(true);
newFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) { new JButtonDemo();
}
}

输出:

Java图形用户界面框架

其他框架

Qt 占碑

原生 qt 库的 java 包装器,用 c/c++ 编写。

它非常强大,被广泛使用并被接受。拥有大量 GUI 组件和易于使用的 API。

SWT

IBM 为 Eclipse 创建的,当时他们似乎认为 Swing 不适合 Eclipse。

它本身是相当低级的,它通过 JNI 使用平台的本机小部件。与Swing和AWT完全无关。

SWT 是一个用于 Java 的开源小部件工具包,旨在提供对实现它的操作系统的用户界面设施的高效、可移植的访问。

阿帕奇枢轴

它使用 Java2D 渲染 UI,从而最大限度地减少 Swing 和 AWT(在我看来,臃肿的)遗留问题的影响。

它的主要焦点似乎是RIA(富互联网应用程序),但它似乎也可以应用于桌面应用程序。

JGoodies

JGoodies OTOH 是关于 PLAF 和布局的。

JavaFX

Java/Oracle的最新旗舰。有望成为开发丰富桌面或 Web 应用程序的事实标准。

以上是Java图形用户界面框架的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
上一篇:compareTo Java下一篇:Unboxing in Java