Desarrollo de tablero de dibujo

Desarrollo de tablero de dibujo

DrawUI.java

En primer lugar, las viejas reglas. También es un buen hábito construir un paquete primero. Es un buen hábito construir un paquete para cada proyecto. Este hábito es bueno para su posterior revisión y modificación.
Inserte la descripción de la imagen aquí
Este inglés también es muy fácil de entender, solo dibuje el tablero
y luego tenga la experiencia de desarrollar la última interfaz SimQQ, sabemos que primero debemos construir una interfaz.
Entonces creamos una clase llamada DrawUI

public class DrawUI{
public void showUI(){
}

//习惯性的添加主函数
public static void main(String[] args){
DrawUI ui = new DrawUI();
ui.showUI();
}
}

Esta operación básica está lista y luego comienza a escribir nuestra interfaz.
En primer lugar, al igual que antes, agregue el formulario JFrame, recuerde agregar el paquete que se utilizará anteriormente.

//为了方便,我们可以这样,这就相当于加入了全部的包
import.java	.awt.*
import.javax.swing.*

public class DrawUI{
public void showUI(){
//添加窗体并且设置属性
    JFrame dr = new JFrame();
    dr.setSize(1000,600);
    dr.setLocationRelativeTo(null);
    dr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );
//添加布局
    JPanel north = new JPanel();//这里是边框布局,分东南西北中五块。
    north.setPreferredSize(new Dimension(0,30));//设置我们的北边框宽度是30
    dr.add(north,BorderLayout.NORTH);//将我们的边框加入到窗体上
    
    JPanel center = new JPanel();//这里是边框布局,分东南西北中五块。
    dr.add(center,BorderLayout.CENTER);//将我们的中部加入到窗体上
    center.setBackground(Color.WHITE);

    dr.setVisible(true);//
}

//习惯性的添加主函数
public static void main(String[] args){
DrawUI ui = new DrawUI();
ui.showUI();
}
}

Haga clic arriba para ejecutar, puede ver que obtenemos un formulario básico
Inserte la descripción de la imagen aquí
con botones en la parte superior e imágenes en la parte inferior.
Ambas son establecidas por mí arribanorte YcentrarDistinguir
A continuación, agregue nuestro botón.

//为了方便,我们可以这样,这就相当于加入了全部的包
import.java	.awt.*
import.javax.swing.*

public class DrawUI{
public void showUI(){
//添加窗体并且设置属性
    JFrame dr = new JFrame();
    dr.setSize(1000,600);
    dr.setLocationRelativeTo(null);
    dr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );
//添加布局
    JPanel north = new JPanel();//这里是边框布局,分东南西北中五块。
    north.setPreferredSize(new Dimension(0,30));//设置我们的北边框宽度是30
    dr.add(north,BorderLayout.NORTH);//将我们的边框加入到窗体上
    
    JPanel center = new JPanel();//这里是边框布局,分东南西北中五块。
    dr.add(center,BorderLayout.CENTER);//将我们的中部加入到窗体上
    center.setBackground(Color.WHITE);
//添加按钮
        JButton btn = new JButton("Line");//画直线的按钮
        north.add(btn);
        
        JButton btn1 = new JButton("Rect");//画矩形的按钮
        north.add(btn1);
        
        JButton btn2 = new JButton("Roun");//画圈的按钮
        north.add(btn2);
        
        JButton btn3 = new JButton("Oval");//画填充圆的按钮
        north.add(btn3);
        
        JButton btn4 = new JButton();
        btn4.setBackground(Color.RED);    //设置颜色的按钮
        btn4.setPreferredSize(new Dimension  (40,30));
        north.add(btn4);
		
        JButton btn5 = new JButton();
        btn5.setBackground(Color.BLUE);   //设置颜色的按钮
        btn5.setPreferredSize(new Dimension  (40,30));
        north.add(btn5);
        
        dr.setVisible(true);//别忘了这一句使窗体可见
}

//习惯性的添加主函数
public static void main(String[] args){
DrawUI ui = new DrawUI();
ui.showUI();
}
}

Incluso si la interfaz anterior está básicamente escrita, ejecute para ver el efecto.
Inserte la descripción de la imagen aquí
Luego es el segundo paso, agregueOyente

BtnListener.java

En primer lugar, agregamos un oyente de acción ActionListener, que se usa para escuchar nuestro botón de clic del mouse en esta acción.

public class BtnListener implements ActionListener{

}

En este momento, se informará un error porque usamos la interfaz, pero no todos los métodos en la interfaz.
El lugar donde se informa el error es nuestro BtnListener, coloque el mouse debajo de él, luego haga clic en la primera solución para
Inserte la descripción de la imagen aquí
resolverlo y luego comience a escribir nuestro contenido de monitoreo.

Aquí notamos que algunos de los botones anteriores sonCadena "Línea", etc., algunas solo tienen colorEntonces, nuestro método debe escribirse así.

public class BtnListener implements ActionListener{
    String cmd="0";
    Graphics g;
    public void actionPerformed(ActionEvent e) {
    	if(e.getActionCommand().equals("")) {
    	    //获取按钮上设置的颜色
    		Object sourceObj = e.getSource();
    		JButton btn = (JButton)sourceObj;
    		Color color = btn.getBackground();
    		g.setColor(color);
    	}else {
    	    //获取按钮上的字符串
    		cmd = e.getActionCommand();
    	}
    	
    }
}

DrawListener.java

Crea una clase llamada DrawListener

public class DrawListener implements MouseListener{
//定义我们的变量
    int startx;
    int starty;
    int endx;
    int endy;
    Graphics g;
}

Del mismo modo, tenemos que introducir el método de interfaz.

public class DrawListener implements MouseListener,ChangeListener{
    int startx,starty,endx,endy;
    
	Graphics g;
	BtnListener btn;//建立我们动作监听器的对象
	
	
	public void mousePressed(MouseEvent e) {
		//按下时获取起始坐标
		startx = e.getX();
		starty = e.getY();
	}
	public void mouseReleased(MouseEvent e) {
		//松开时获取终点坐标
		endx = e.getX();
		endy = e.getY();
		
	//画线
	if(btn.cmd.equals("Line")) {
		g.drawLine(startx,starty,endx,endy);
	}
	//画矩形
	if(btn.cmd.equals("Rect")) {
		g.drawRect(startx,starty,endx,endy);
	}
	//画圈
	if(btn.cmd.equals("Roun")) {
		g.drawOval(startx,starty, 300, 280);
	}
	//画填充圆
	if(btn.cmd.equals("Oval")) {
		g.fillOval(startx,starty, 300, 280);
	}

	System.out.println(startx+","+starty+"--"+","+endy);
}
	public void mouseClicked(MouseEvent e) {}
    public void mouseEntered(MouseEvent e) {}
    public void mouseExited(MouseEvent e) {}

}

Entonces nuestro oyente está completo!
A continuación, solo necesitamos agregar nuestro oyente a nuestra interfaz.

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

public class DrawUI{
public void showUI(){
//添加窗体并且设置属性
    JFrame dr = new JFrame();
    dr.setSize(1000,600);
    dr.setLocationRelativeTo(null);
    dr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );
//添加布局
    JPanel north = new JPanel();//这里是边框布局,分东南西北中五块。
    north.setPreferredSize(new Dimension(0,30));//设置我们的北边框宽度是30
    dr.add(north,BorderLayout.NORTH);//将我们的边框加入到窗体上
    
    JPanel center = new JPanel();//这里是边框布局,分东南西北中五块。
    dr.add(center,BorderLayout.CENTER);//将我们的中部加入到窗体上
    center.setBackground(Color.WHITE);
//添加按钮
        JButton btn = new JButton("Line");//画直线的按钮
        north.add(btn);
        
        JButton btn1 = new JButton("Rect");//画矩形的按钮
        north.add(btn1);
        
        JButton btn2 = new JButton("Roun");//画圈的按钮
        north.add(btn2);
        
        JButton btn3 = new JButton("Oval");//画填充圆的按钮
        north.add(btn3);
        
        JButton btn4 = new JButton();
        btn4.setBackground(Color.RED);    //设置颜色的按钮
        btn4.setPreferredSize(new Dimension  (40,30));
        north.add(btn4);
		
        JButton btn5 = new JButton();
        btn5.setBackground(Color.BLUE);   //设置颜色的按钮
        btn5.setPreferredSize(new Dimension  (40,30));
        north.add(btn5);
        
        dr.setVisible(true);//使窗体可见


        //创建监听器
        DrawListener drawL = new DrawListener();//鼠标监听器
        BtnListener btnListener = new BtnListener();//动作监听器
        //获取窗体的画布
        drawL.g= center.getGraphics();
        
        //添加监听器
		center.addMouseListener(drawL);
		btn.addActionListener(btnListener);
		btn1.addActionListener(btnListener);
		btn2.addActionListener(btnListener);
		btn3.addActionListener(btnListener);
		btn4.addActionListener(btnListener);
		btn5.addActionListener(btnListener);
		
        //将动作监听器的对象传给鼠标监听器
		drawL.btn = btnListener;
		btnListener.g=drawL.g;
}

//习惯性的添加主函数
public static void main(String[] args){
DrawUI ui = new DrawUI();
ui.showUI();
}
}

¡Entonces nuestro tablero de dibujo está completo!
Mira el efecto.
Inserte la descripción de la imagen aquí
El control deslizante anterior también es un componente, lo agregué más tarde, el método no está escrito en él, todos pueden ignorarlo y luego dominar el método, podemos hacerlo nosotros mismos, qué otras funciones desea dibujar en la pizarra, todos Puedes hacerlo tú mismo.
sobre ~

13 artículos originales publicados · Me gusta1 · Visitas 305

Supongo que te gusta

Origin blog.csdn.net/Alagagaga/article/details/103260590
Recomendado
Clasificación