栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java 图形界面设计,使用JPanel、JFrame 绘图,图形界面设计入门演示,各种主要绘图方法以及图片、文字插入

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java 图形界面设计,使用JPanel、JFrame 绘图,图形界面设计入门演示,各种主要绘图方法以及图片、文字插入

那什么是JPanel?Jframe 又是什么呢?让我们先来了解一下他们的区别吧:

Jframe是最底层,JPanel是置于其面上,同一个界面只有一个Jframe,一个Jframe可以放多个JPanel。如果你直接在Jframe上放也可以,但是首先不规范,然后要是过于复杂的界面你准备如何处理这么多控件呢?
对于java页面的布局,我的理解就是Jframe 就像是一张大的桌子,你可以直接把鱼呀,肉了,直接放在桌面上,没有盘子进行分类管理,这时我们就需要jpanel这样的盘子来放我们需要的一些控件。便于管理。

那接下来让我们首先使用JPanel 和 Jframe画一个圆:

Jframe 就相当于是一个窗口,你也可以把它理解成是一个画框,而此时JPanel 就相当于是一个画板,通常继承 JPanel 类的面板通过重写paint()方法进行绘图

package huitu.com;

import javax.swing.*;
import java.awt.*;


@SuppressWarnings({"all"})

public class DrawingTest01 extends Jframe{// Jframe(框架)对应窗口,可以理解成是一个画框
    // 演示如何在面板上画出圆形
    // 定义一个面板
    private MyPanel mp=null;
    public static void main(String[] args) {
        new DrawingTest01();
    }

    public DrawingTest01() {
        // 初始化面板
        mp = new MyPanel();
        // 把面板放到窗口(画框)
        this.add(mp);
        //设置窗口大小
        this.setSize(400,300);
        this.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);// 当退出画框就退出程序
        this.setVisible(true);// 可以显示
    }
}



// 1. 先定义一个MyPanel(面板),继承JPanel 类,画图形就在该面板上画
class MyPanel extends JPanel{
    
    @Override
    public void paint(Graphics g) {// 绘图方法
        super.paint(g);// 调用父类的方法完成初始化
        // 画出一个圆形
        g.drawOval(100,100,100,100);

    }
}

效果演示:

注意: 所画图形的大小是以窗口大小为参考系的,如果设置值大于了窗口大小,那我们是看不到完整的图形的,就好比你把画画得超出了画框,这种结果是非常不理想的

那么通过对Jframe 和JPanel 的初步了解,接下来让我们来看看他的一些主要方法和绘制各种各样的图形吧

package huitu.com;

import javax.swing.*;
import java.awt.*;


public class DrawingTest02 extends Jframe{
    private MyPanel_ mp = null;

    public static void main(String[] args) {
        new DrawingTest02();
    }

    public DrawingTest02() {
        // 初始化面板
        mp = new MyPanel_();
        // 把面板放到窗口(画框)
        this.add(mp);
        //设置窗口大小
        this.setSize(1000, 600);
        this.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);// 当退出画框就退出程序
        this.setVisible(true);// 可以显示
    }
}

class MyPanel_ extends JPanel{

    @Override
    public void paint(Graphics g) {// 绘图方法
        super.paint(g);// 调用父类的方法完成初始化
        // 绘制不同的图形
        //1.画直线drawLine(int x1, int y1, int x2, int y2)
        g.drawLine(10,10,100,100);// 确定两点坐标

        //2.画矩形边框 drawRect(int x, int y, int width, int height)
        g.drawRect(10,10,100,100);
        // g.draw3DRect(); 3D

       // 3.画椭圆边框 drawOval(int x, int y, int width, int height)
        g.drawOval(10,10,100,100);
        //4.填充矩形 fillRect(int x, int y, int width, int height)
        // 设置画笔颜色
        g.setColor(Color.red);
        g.fillRect(40,50,100,100);

       // 5.填充椭圆 fillOval(int int int width, int height)
        g.setColor(Color.orange);
        g.fillOval(100,100,100,200);

        // 6.画图片 drawImage(Image img, int x,int y,..)
        // 1. 加载图片资源(获取图片资源)
        Image image = Toolkit.getDefaultToolkit().getImage("D:\风耀.jpg");
        g.drawImage(image,270,100,324,462,this);

        // 7.画字符串 drawString(String str,int x, int y)
        g.setColor(Color.BLUE);
        g.setFont(new Font("隶书",Font.BOLD,50));// 隶书 ,粗体,大小
        g.drawString("为战而生,至死方休",220,80);
       // 8.设置画笔的字体setFont(Font font)
      //  9.设置画笔的颜色setColor(Color)
    }
}

效果演示:

另外还有一种插入图片的方式:

重写paintComponent()方法其触发调用的机制和paint()方法相同

 @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        // 6.画图片 drawImage(Image img, int x,int y,..)
        // 1. 加载图片资源(获取图片资源)
        Image image = Toolkit.getDefaultToolkit().getImage("D:\风耀.jpg");
        g.drawImage(image,270,100,324,462,this);
    }

当然我只是展示了其中一部分方法,其他的方法大家可以通过观看javaAPI查看 ,这也只是java图形界面设计的一点点基础,更多的创作思路还需要大家亲自去体验

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/731383.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号