vector - java window制作简单绘图工具 为什么没有显示啊?

 mobiledu2502861465 发布于 2022-10-25 08:21

package Drawing;

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JComboBox;
import java.awt.Font;
import java.awt.Graphics;

import javax.swing.DefaultComboBoxModel;
import javax.swing.JPanel;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Vector;
import java.awt.event.MouseMotionAdapter;
import java.awt.Color;
import javax.swing.border.LineBorder;
import java.awt.Window.Type;

public class DrawingBoard extends JPanel{

private JFrame frmDrawingboard;

/**
 * Launch the application.
 */
public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                DrawingBoard window = new DrawingBoard();
                window.frmDrawingboard.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}

/**
 * Create the application.
 */
public DrawingBoard() {
    initialize();
      
}

/**
 * Initialize the contents of the frame.
 */
int x1, y1, x2, y2;  
Vector vectorShapes = new Vector();
private void initialize() {
    frmDrawingboard = new JFrame();
    frmDrawingboard.setResizable(false);
    frmDrawingboard.setTitle("DrawingBoard\r\n");
    frmDrawingboard.getContentPane().setBackground(Color.DARK_GRAY);
    frmDrawingboard.setBounds(100, 100, 464, 350);
    frmDrawingboard.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frmDrawingboard.getContentPane().setLayout(null);
    
    JComboBox comboBox = new JComboBox();
    comboBox.setForeground(Color.RED);
    comboBox.setBackground(Color.BLACK);
    comboBox.setModel(new DefaultComboBoxModel(new String[] {"Line", "Rectangle", "Oval"}));
    comboBox.setFont(new Font("Comic Sans MS", Font.BOLD, 16));
    comboBox.setBounds(345, 280, 102, 21);
    frmDrawingboard.getContentPane().add(comboBox);

    JPanel panel = new JPanel();
    panel.setBorder(new LineBorder(new Color(0, 0, 0), 2, true));
    panel.setBackground(Color.WHITE);

    panel.addMouseListener(new MouseAdapter() {
        @Override
        public void mousePressed(MouseEvent e) {
               x1 = e.getX();  
               y1 = e.getY(); 
               Shapes c =new Shapes();
               switch(comboBox.getSelectedIndex()){
               case -1:c = new Line(x1,y1,x1,y1);break;
               case 0:c = new Rectangle(x1,y1,x1,y1);break;
               case 1:c = new Oval(x1,y1,x1,y1);break;
                } //end switch
                vectorShapes.add(c);
        }
    });
    panel.addMouseMotionListener(new MouseMotionAdapter() {
        @Override
        public void mouseDragged(MouseEvent e) {
             vectorShapes.get(vectorShapes.size()-1).x2 = e.getX();  
             vectorShapes.get(vectorShapes.size()-1).y2 = e.getY();  
             repaint(); 
        }
    });
    panel.setBounds(10, 10, 437, 260);
    frmDrawingboard.getContentPane().add(panel);
}
 protected void paintComponent(Graphics g){  
        g.clearRect(0, 0, getWidth(), getHeight());  
        for(int i = 0; i < vectorShapes.size(); i++)   
        {  
            vectorShapes.get(i).draw(g);  
        }  
    }

}

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有