21xrx.com
2024-11-22 15:52:05 Friday
登录
文章检索 我的文章 写文章
作为一名Java程序员
2023-06-11 18:07:28 深夜i     --     --

作为一名Java程序员,我经常需要在我的程序中添加一些简单的图形,来让用户更直观地感受程序的效果。对于初学者来说,可能不知道该如何利用Java语言来实现简单的图形界面。在我学习的过程中,我总结了一些经验,希望能帮助到大家。

关键词一:JFrame窗口类

在Java中,要创建一个图形界面,首先需要使用JFrame类来创建一个窗口。通过设置JFrame的一些参数,可以实现窗口的大小、标题和关闭方式等功能。

下面是一个JFrame的示例代码:


import javax.swing.JFrame;

public class MyFrame extends JFrame {

  public MyFrame() {

    super("My Java Frame"); // 设置窗口标题

    setSize(300, 200); // 设置窗口大小

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置窗口关闭方式

    setVisible(true);

  }

  public static void main(String[] args) {

    new MyFrame();

  }

}

在这个代码中,我们继承了JFrame类,并在MyFrame的构造函数中设置了一些属性。在main方法中,我们创建了一个MyFrame对象,就可以显示出窗口了。

关键词二:Graphics2D类

要在窗口中画图形,需要使用Graphics2D类来实现。Graphics2D是Java2D API中的一部分,提供了绘制图形和文本的方法。

下面是一个简单的Graphics2D的示例代码:


import java.awt.Graphics;

import java.awt.Graphics2D;

import java.awt.geom.Line2D;

import javax.swing.JFrame;

import javax.swing.JPanel;

public class MyPanel extends JPanel {

  @Override

  public void paintComponent(Graphics g) {

    super.paintComponent(g);

    Graphics2D g2d = (Graphics2D) g;

    g2d.draw(new Line2D.Double(10, 10, 100, 100));

  }

  public static void main(String[] args) {

    JFrame frame = new JFrame();

    frame.setSize(200, 200);

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    MyPanel panel = new MyPanel();

    frame.setContentPane(panel);

    frame.setVisible(true);

  }

}

在这个代码中,我们创建了一个MyPanel类,继承了JPanel。在这个类的paintComponent方法中,我们创建了一个Graphics2D对象,并使用draw方法绘制了一条直线。最后,在main方法中,我们创建了一个JFrame对象,并在其中添加了MyPanel对象。

关键词三:图形变换

除了直接绘制图形外,还可以使用图形变换来实现更加复杂的效果。Graphics2D提供了一些方法来实现平移、旋转、缩放等变换,可以通过组合这些变换,实现各种复杂的效果。

下面是一个简单的图形变换的示例代码:


import java.awt.Color;

import java.awt.Graphics;

import java.awt.Graphics2D;

import java.awt.geom.AffineTransform;

import java.awt.geom.Rectangle2D;

import javax.swing.JFrame;

import javax.swing.JPanel;

public class MyTransform extends JPanel {

  @Override

  public void paintComponent(Graphics g) {

    super.paintComponent(g);

    Graphics2D g2d = (Graphics2D) g;

    g2d.setColor(Color.RED);

    Rectangle2D rect = new Rectangle2D.Double(50, 50, 100, 50);

    g2d.fill(rect);

    AffineTransform transform = new AffineTransform();

    transform.translate(50, 50);

    transform.rotate(Math.PI / 4);

    transform.scale(0.5, 0.5);

    g2d.setColor(Color.GREEN);

    g2d.fill(transform.createTransformedShape(rect));

  }

  public static void main(String[] args) {

    JFrame frame = new JFrame();

    frame.setSize(200, 200);

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    MyTransform panel = new MyTransform();

    frame.setContentPane(panel);

    frame.setVisible(true);

  }

}

在这个代码中,我们创建了一个MyTransform类,继承了JPanel。在这个类的paintComponent方法中,我们首先绘制了一个红色的矩形,然后创建了一个AffineTransform对象,并对其进行平移、旋转、缩放等变换,最后使用createTransformedShape方法获取变换后的形状,并绘制在窗口中。最终的效果是一个绿色的变换后的矩形。

标题:Java如何实现简单的图形界面

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复