学堂 学堂 学堂公众号手机端

要实现画图板功能,可以使用Java的Swing库来创建一个简单的绘图应用。以下是一个基本的示例代码,用于实现画图板功能

lewis 2年前 (2023-10-09) 阅读数 7 #技术

要实现画图板功能,可以使用Java的Swing库来创建一个简单的绘图应用。以下是一个基本的示例代码,用于实现画图板功能:

importjavax.swing.*; importjava.awt.*; importjava.awt.event.ActionEvent; importjava.awt.event.ActionListener; importjava.awt.event.MouseAdapter; importjava.awt.event.MouseEvent; publicclassDrawingBoardextendsJFrame{ privateintstartX,startY,endX,endY; privateColorcurrentColor=Color.BLACK; publicDrawingBoard(){ setTitle("DrawingBoard"); setSize(800,600); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanelcontrolPanel=newJPanel(); JButtonredButton=newJButton("Red"); redButton.addActionListener(newActionListener(){ @Override publicvoidactionPerformed(ActionEvente){ currentColor=Color.RED; } }); JButtonblackButton=newJButton("Black"); blackButton.addActionListener(newActionListener(){ @Override publicvoidactionPerformed(ActionEvente){ currentColor=Color.BLACK; } }); controlPanel.add(redButton); controlPanel.add(blackButton); JPaneldrawingPanel=newJPanel(){ @Override protectedvoidpaintComponent(Graphicsg){ super.paintComponent(g); g.setColor(currentColor); g.drawLine(startX,startY,endX,endY); } }; drawingPanel.addMouseListener(newMouseAdapter(){ @Override publicvoidmousePressed(MouseEvente){ startX=e.getX(); startY=e.getY(); } @Override publicvoidmouseReleased(MouseEvente){ endX=e.getX(); endY=e.getY(); drawingPanel.repaint(); } }); getContentPane().add(controlPanel,BorderLayout.NORTH); getContentPane().add(drawingPanel,BorderLayout.CENTER); } publicstaticvoidmain(String[]args){ SwingUtilities.invokeLater(newRunnable(){ @Override publicvoidrun(){ DrawingBoarddrawingBoard=newDrawingBoard(); drawingBoard.setVisible(true); } }); } }

此代码创建了一个简单的绘图板应用程序,用户可以在画板上绘制直线,并可以选择绘制的颜色。用户可以使用鼠标按下并拖动来绘制线条。您可以根据需要扩展此示例代码,以实现更复杂的绘图功能,如绘制不同形状、使用不同的画笔风格等。


版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门