在窗口中调用两块板的内容

之前的文章里面提到过在一块板中绘制各种图案,

这一次尝试在窗口中添加两块板。

PS:需要在文件的目录下加入所需图片

工具板代码   ↓↓↓

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

public class Drawing_Tool extends JPanel {        //在板中绘制图形

    public Drawing_Tool()
    {
        Tips=new String[]{"任意裁剪","选定","橡皮擦","油漆桶","取色","放大镜","铅笔","刷子","喷枪","文字","直线","曲线","矩形","多边形","椭圆","圆角矩形"};
        for (int i=0;i<16;i++)
        {
            Image_Tool[i]=new ImageIcon(Tips[i]+".png");         //初始化按钮图标
            Button_Tool[i]=new JButton(Image_Tool[i]);              //用图片初始化按钮
            Button_Tool[i].setToolTipText(Tips[i]);                         //设置按钮提示
        }//for
    }//构造函数
    
    @Override
    public void paintComponent(Graphics g)
	{
        super.paintComponent(g);
        g.drawString("画板工具", 10, 10);           //显示字符串
        
        for(int i=0,j=0;i<15;i+=2,j++)                  //设置各按钮的位置
        {
            Button_Tool[i].setBounds(7, 17+26*j, 25, 25);
            Button_Tool[i+1].setBounds(33, 17+26*j, 25, 25);
        }//for
        
        for (int i=0;i<16;i++)          //将按钮加入工具板
            Drawing_Tool.this.add(Button_Tool[i]);
   }//paintComponent

    JButton[] Button_Tool=new JButton[16];
    ImageIcon[] Image_Tool=new ImageIcon[16];
    String[] Tips;
}//DrawPanel类

画板代码   ↓↓↓

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

public class Drawing_Board extends JPanel{
    
    public Drawing_Board()
    {
        if(img_Board==null)
            img_Board=Toolkit.getDefaultToolkit().getImage("画板.png");       //初始化img_Board
    }//Drawing_Board
    
    @Override
    public void paintComponent(Graphics g)
	{
        super.paintComponent(g);
        g.drawImage(img_Board,WIDTH,HEIGHT,this);       //设置图片位置
    }//paintComponent

    Image img_Board;
    public static final int WIDTH =  20;
	public static final int HEIGHT = 0;
}//Drawing_Board类



绘制窗口代码   ↓↓↓

package MyFrame;
import MyPanel.*;
import java.awt.*;
import javax.swing.*;

public class Draw_Frame extends JFrame {
    public Draw_Frame()
	{
        setTitle("画图");         //设置窗口标题
		setSize(900, 520);      //设置窗口大小

		Container Draw_Container= getContentPane();
        Draw_Container.setLayout(null);         //清除布局

        Drawing_Tool Tool_Panel=new Drawing_Tool();
        Drawing_Board Board_Panel=new Drawing_Board();

        Tool_Panel.setBounds(0, 10, 60, 250);           //设置工具板的位置
        Board_Panel.setBounds(60, 10, 800, 600);    //设置画板位置

        Draw_Container.add(Tool_Panel);
        Draw_Container.add(Board_Panel);
    }//构造函数

}//Draw_Frame类



主函数中调用窗口类   ↓↓↓

package MyDraw;
import MyFrame.*;
import javax.swing.*;

public class Draw {

    public static void main(String[] args)
	{
        Draw_Frame frame = new Draw_Frame();      //建立一个新窗口
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);       //设置用户关闭框架时的响应动作
		frame.setVisible(true);         //显示窗口
    }//main

}//Draw类

程序运行结果请读者自行调试。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值