之前的文章里面提到过在一块板中绘制各种图案,
这一次尝试在窗口中添加两块板。
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类
程序运行结果请读者自行调试。