欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

java畫圓畫矩形代碼 java 畫圓

求一個java程序:繪圖程序包括畫圓,橢圓,線,矩形,自定義。并且可以調(diào)圖形顏色!

public?enum?ShapeTypes?{

創(chuàng)新互聯(lián)基于成都重慶香港及美國等地區(qū)分布式IDC機房數(shù)據(jù)中心構建的電信大帶寬,聯(lián)通大帶寬,移動大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)成都機柜租用報價,主機托管價格性價比高,為金融證券行業(yè)服務器托管,ai人工智能服務器托管提供bgp線路100M獨享,G口帶寬及機柜租用的專業(yè)成都idc公司。

LINE,?CIRCLE,?RECTANGLE

}

public?interface?Shape?{

void?paint(Graphics?g);

}

public?class?Rectangle?implements?Shape?{

//?矩形左上角的坐標

private?int?x,?y;

//?矩形的寬度和高度

private?int?width,?height;

private?Color?rectangleColor;

public?Rectangle()?{

super();

}

public?Rectangle(int?x,?int?y,?int?width,?int?height,?Color?rectangleColor)?{

super();

this.x?=?x;

this.y?=?y;

this.width?=?width;

this.height?=?height;

this.rectangleColor?=?rectangleColor;

}

@Override

public?void?paint(Graphics?g)?{

g.setColor(rectangleColor);

g.drawRect(x,?y,?width,?height);

}

}

public?class?Line?implements?Shape?{

//?直線的起始位置

private?int?x1,?y1;

//?直線的終止位置

private?int?x2,?y2;

private?Color?lineColor;

public?Line(int?x1,?int?y1,?int?x2,?int?y2,?Color?lineColor)?{

super();

this.x1?=?x1;

this.y1?=?y1;

this.x2?=?x2;

this.y2?=?y2;

this.lineColor?=?lineColor;

}

public?Line()?{

super();

}

@Override

public?void?paint(Graphics?g)?{

g.setColor(lineColor);

g.drawLine(x1,?y1,?x2,?y2);

}

}

public?class?Circle?implements?Shape?{

//?圓的顏色

private?Color?circleColor;

//?圓心的坐標

private?int?x,?y;

//?圓的半徑

private?int?radius;

public?Circle()?{

super();

}

public?Circle(int?x,?int?y,?int?radius,?Color?circleColor)?{

super();

this.circleColor?=?circleColor;

this.x?=?x;

this.y?=?y;

this.radius?=?radius;

}

@Override

public?void?paint(Graphics?g)?{

g.setColor(circleColor);

//?畫弧,?當弧的寬度和高度一致且從0~360度時就是原形了

g.drawArc(x,?y,?radius,?radius,?0,?360);

}

}

public?class?SketchpadPanel?extends?Canvas?implements?MouseListener,?MouseMotionListener?{

private?static?final?long?serialVersionUID?=?-5229161042153132522L;

//?鼠標點擊起始坐標和當前坐標

private?int?beginX?=?0,?beginY?=?0,?currentX?=?0,?currentY?=?0;

//?判斷鼠標是否被按下

private?boolean?isMousePressing?=?false;

//?保存當前的圖形,?在撤銷和恢復時使用

private?final?StackShape?currentShapes?=?new?StackShape();

//?保存已經(jīng)刪除過的圖形

private?final?StackShape?deletedShapes?=?new?StackShape();

private?ShapeTypes?type;

private?Color?color;

public?SketchpadPanel()?{

addMouseListener(this);

addMouseMotionListener(this);

}

/**

?*?撤銷方法

?*/

public?void?undo()?{

if?(currentShapes.size()??0)?{

//?從所有保存過的圖形中取出最后一個,?放入到已刪除的圖形中去

Shape?shape?=?currentShapes.pop();

deletedShapes.push(shape);

repaint();

}

}

/**

?*?恢復撤銷方法

?*/

public?void?redo()?{

if?(deletedShapes.size()??0)?{

//?從所有刪除的圖形中取出最后一個,?放入保存的圖形中

Shape?shape?=?deletedShapes.pop();

currentShapes.push(shape);

repaint();

}

}

/**

?*?設置命令

?*?

?*?@param?type

?*/

public?void?setShapeType(ShapeTypes?type)?{

this.type?=?type;

}

/**

?*?設置顏色

?*?

?*?@param?color

?*/

public?void?setColor(Color?color)?{

this.color?=?color;

}

public?void?updete(Graphics?g)?{

paint(g);

}

/**

?*?繪制畫板

?*/

@Override

public?void?paint(Graphics?g)?{

//?繪制畫板

Dimension?size?=?getSize();

int?width?=?size.width;

int?height?=?size.height;

g.setColor(Color.WHITE);

g.fillRect(0,?0,?width,?height);

//?繪制所有圖形

Shape?shape?=?null;

EnumerationShape?e?=?currentShapes.elements();

while?(e.hasMoreElements())?{

shape?=?e.nextElement();

shape.paint(g);

}

//?如果當前鼠標沒有釋放

if?(isMousePressing)?{

g.setColor(color);

switch?(type)?{

//?繪制直線

case?LINE:

g.drawLine(beginX,?beginY,?currentX,?currentY);

break;

//?繪制矩形

case?RECTANGLE:

if?(currentX??beginX)?{

if?(currentY??beginY)?{

//?如果當前位置在起始位置的左上方,?則以鼠標當前位置為矩形的左上角位置

g.drawRect(currentX,?currentY,?beginX?-?currentX,?beginY?-?currentY);

}?else?{

//?如果當前位置在起始位置的左下方,?則以鼠標當前位置的橫坐標和起始位置的縱坐標作為矩形的左上角位置

g.drawRect(currentX,?beginY,?beginX?-?currentX,?currentY?-?beginY);

}

}?else?{

if?(currentY??beginY)?{

//?如果當前位置在起始位置的右上方,?則以鼠標起始位置的很坐標和當前位置的縱坐標作為矩形的左上角位置

g.drawRect(beginX,?currentY,?currentX?-?beginX,?beginY?-?currentY);

}?else?{

//?如果當前位置在起始位置的右下方,?則已起始位置作為矩形的左上叫位置

g.drawRect(beginX,?beginY,?currentX?-?beginX,?currentY?-?beginY);

}

}

break;

//?繪制圓形

case?CIRCLE:

//?半徑為a*a?+?b*b的平方根

int?radius?=?(int)?Math

.sqrt((beginX?-?currentX)?*?(beginX?-?currentX)?+?(beginY?-?currentY)?*?(beginY?-?currentY));

g.drawArc(beginX?-?radius?/?2,?beginY?-?radius?/?2,?radius,?radius,?0,?360);

break;

}

}

}

@Override

public?void?mouseClicked(MouseEvent?e)?{

}

@Override

public?void?mouseEntered(MouseEvent?e)?{

}

@Override

public?void?mouseExited(MouseEvent?e)?{

}

/**

?*?當鼠標按下的時候獲得起始坐標

?*/

@Override

public?void?mousePressed(MouseEvent?e)?{

beginX?=?e.getX();

beginY?=?e.getY();

isMousePressing?=?true;

}

/**

?*?當鼠標釋放時獲得當前坐標

?*/

@Override

public?void?mouseReleased(MouseEvent?e)?{

currentX?=?e.getX();

currentY?=?e.getY();

isMousePressing?=?false;

//?當釋放鼠標時,?將繪制的圖形保存到shapes中

switch?(type)?{

//?繪制直線

case?LINE:

Line?line?=?new?Line(beginX,?beginY,?currentX,?currentY,?color);

currentShapes.push(line);

break;

//?繪制圓形

case?CIRCLE:

//?半徑為a*a?+?b*b的平方根

int?radius?=?(int)?Math

.sqrt((beginX?-?currentX)?*?(beginX?-?currentX)?+?(beginY?-?currentY)?*?(beginY?-?currentY));

Circle?circle?=?new?Circle(beginX?-?radius?/?2,?beginY?-?radius?/?2,?radius,?color);

currentShapes.push(circle);

break;

//?繪制矩形

case?RECTANGLE:

Rectangle?rectangle?=?null;

if?(currentX??beginX)?{

if?(currentY??beginY)?{

rectangle?=?new?Rectangle(currentX,?currentY,?beginX?-?currentX,?beginY?-?currentY,?color);

}?else?{

rectangle?=?new?Rectangle(currentX,?beginY,?beginX?-?currentX,?currentY?-?beginY,?color);

}

}?else?{

if?(currentY??beginY)?{

rectangle?=?new?Rectangle(beginX,?currentY,?currentX?-?beginX,?beginY?-?currentY,?color);

}?else?{

rectangle?=?new?Rectangle(beginX,?beginY,?currentX?-?beginX,?currentY?-?beginY,?color);

}

}

currentShapes.push(rectangle);

break;

}

repaint();

}

@Override

public?void?mouseDragged(MouseEvent?e)?{

currentX?=?e.getX();

currentY?=?e.getY();

this.repaint();

}

@Override

public?void?mouseMoved(MouseEvent?e)?{

}

}

public?class?SketchpadFrame?extends?JFrame?{

private?static?final?long?serialVersionUID?=?-7080053971741609904L;

private?final?JPanel?commandPanel?=?new?JPanel();?//?存放命令的面板

private?final?JPanel?colorPanel?=?new?JPanel();?//?存放顏色的面板

private?final?JPanel?mainPanel?=?new?JPanel();?//?主面板

private?final?JButton?redButton?=?new?JButton("紅色");

private?final?JButton?blueButton?=?new?JButton("藍色");

private?final?JButton?greenButton?=?new?JButton("綠色");

private?final?JButton?lineButton?=?new?JButton("直線");

private?final?JButton?circleButton?=?new?JButton("圓");

private?final?JButton?rectangleButton?=?new?JButton("矩形");

private?final?JButton?undoButton?=?new?JButton("撤銷");

private?final?JButton?redoButton?=?new?JButton("恢復撤銷");

private?final?JButton?exitButton?=?new?JButton("退出");

SketchpadPanel?sketchPanel?=?new?SketchpadPanel();

private?void?initFrame()?{

commandPanel.setLayout(new?FlowLayout());

commandPanel.add(lineButton);

commandPanel.add(circleButton);

commandPanel.add(rectangleButton);

commandPanel.add(undoButton);

commandPanel.add(redoButton);

commandPanel.add(exitButton);

colorPanel.setLayout(new?FlowLayout());

colorPanel.add(redButton);

colorPanel.add(blueButton);

colorPanel.add(greenButton);

mainPanel.setLayout(new?BorderLayout());

mainPanel.add(commandPanel,?BorderLayout.NORTH);

mainPanel.add(colorPanel,?BorderLayout.CENTER);

getContentPane().add("South",?mainPanel);

getContentPane().add("Center",?sketchPanel);

//?初始化設置:顏色和命令

lineButton.setForeground(Color.RED);

sketchPanel.setColor(Color.RED);

redButton.setForeground(Color.RED);

sketchPanel.setShapeType(ShapeTypes.LINE);

}

private?void?initListener()?{

redButton.addActionListener(new?ActionListener()?{

@Override

public?void?actionPerformed(ActionEvent?e)?{

redAction(e);

}

});

blueButton.addActionListener(new?ActionListener()?{

@Override

public?void?actionPerformed(ActionEvent?e)?{

blueAction(e);

}

});

greenButton.addActionListener(new?ActionListener()?{

@Override

public?void?actionPerformed(ActionEvent?e)?{

greenAction(e);

}

});

undoButton.addActionListener(new?ActionListener()?{

@Override

public?void?actionPerformed(ActionEvent?e)?{

undoAction(e);

}

});

redoButton.addActionListener(new?ActionListener()?{

@Override

public?void?actionPerformed(ActionEvent?e)?{

redoAction(e);

}

});

exitButton.addActionListener(new?ActionListener()?{

@Override

public?void?actionPerformed(ActionEvent?e)?{

exitAction(e);

}

});

lineButton.addActionListener(new?ActionListener()?{

@Override

public?void?actionPerformed(ActionEvent?e)?{

lineAction(e);

}

});

circleButton.addActionListener(new?ActionListener()?{

@Override

public?void?actionPerformed(ActionEvent?e)?{

circleAction(e);

}

});

rectangleButton.addActionListener(new?ActionListener()?{

@Override

public?void?actionPerformed(ActionEvent?e)?{

rectangleAction(e);

}

});

}

public?SketchpadFrame()?{

initFrame();

initListener();

this.setSize(500,?600);

setLocationByPlatform(true);

setResizable(true);

}

/*?********************處理事件*********************?*/

private?void?undoAction(ActionEvent?e)?{

sketchPanel.undo();

}

private?void?redoAction(ActionEvent?e)?{

sketchPanel.redo();

}

private?void?exitAction(ActionEvent?e)?{

System.exit(0);

}

private?void?lineAction(ActionEvent?e)?{

//?選中按鈕為紅色,?其余為黑色

lineButton.setForeground(Color.RED);

circleButton.setForeground(Color.BLACK);

rectangleButton.setForeground(Color.BLACK);

sketchPanel.setShapeType(ShapeTypes.LINE);

}

private?void?circleAction(ActionEvent?e)?{

circleButton.setForeground(Color.RED);

lineButton.setForeground(Color.BLACK);

rectangleButton.setForeground(Color.BLACK);

sketchPanel.setShapeType(ShapeTypes.CIRCLE);

}

private?void?rectangleAction(ActionEvent?e)?{

rectangleButton.setForeground(Color.RED);

lineButton.setForeground(Color.BLACK);

circleButton.setForeground(Color.BLACK);

sketchPanel.setShapeType(ShapeTypes.RECTANGLE);

}

private?void?redAction(ActionEvent?e)?{

redButton.setForeground(Color.RED);

blueButton.setForeground(Color.BLACK);

greenButton.setForeground(Color.BLACK);

sketchPanel.setColor(Color.RED);

}

private?void?blueAction(ActionEvent?e)?{

blueButton.setForeground(Color.RED);

redButton.setForeground(Color.BLACK);

greenButton.setForeground(Color.BLACK);

sketchPanel.setColor(Color.BLUE);

}

private?void?greenAction(ActionEvent?e)?{

greenButton.setForeground(Color.RED);

redButton.setForeground(Color.BLACK);

blueButton.setForeground(Color.BLACK);

sketchPanel.setColor(Color.GREEN);

}

}

/**

*?

*?@author?不落的太陽(Sean?Yang)

*?@version?1.0

*?@since?JDK?1.8

*?

*/

public?class?SketchpadMain?{

/**

?*?測試方法

?*?

?*?@param?args命令行參數(shù)

?*/

public?static?void?main(String[]?args)?{

EventQueue.invokeLater(new?Runnable()?{

@Override

public?void?run()?{

JFrame?frame?=?new?SketchpadFrame();

frame.setVisible(true);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

});

}

}

JAVA怎么畫出一個任意大小的圓形和矩形

package?test.xxl;

import?java.awt.Button;

import?java.awt.Color;

import?java.awt.Cursor;

import?java.awt.Graphics;

import?java.awt.event.ActionEvent;

import?java.awt.event.ActionListener;

import?java.awt.event.MouseEvent;

import?java.awt.event.MouseListener;

import?javax.swing.JFrame;

public?class?Demo0617?extends?JFrame?implements?MouseListener,ActionListener{

private?static?int?x?=?0?;?

private?static?int?y?=?0?;

private?static?int?w?=?0?;

private?static?int?h?=?0?;

private?static?Color?c?;

//?真為圓,假為方

private?boolean?flag?=?false?;

private?static?final?long?serialVersionUID?=?1L;

public?Demo0617(){

this.setSize(440,?500)?;

this.setVisible(true)?;

this.setLayout(null)?;

this.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR))?;

this.setResizable(false);//不能改變窗體大小

this.setBackground(Color.WHITE)?;

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)?;

this.addMouseListener(this)?;

this.getContentPane().setBackground(Color.WHITE)?;

Button?b1,b2,b3,b4,b5,b6,b7,b8,b9?;

b1?=?new?Button("紅色")?;

b1.setBounds(0,?0,?100,?30)?;

b1.setBackground(Color.RED)?;

b1.addActionListener(this)?;

this.add(b1)?;

b2?=?new?Button("黑色")?;

b2.setBounds(110,?0,?100,?30)?;

b2.setBackground(Color.BLACK)?;

b2.addActionListener(this)?;

this.add(b2)?;

b3?=?new?Button("黃色")?;

b3.setBounds(220,?0,?100,?30)?;

b3.setBackground(Color.YELLOW)?;

b3.addActionListener(this)?;

this.add(b3)?;

b4?=?new?Button("藍色")?;

b4.setBackground(Color.BLUE)?;

b4.setBounds(330,?0,?100,?30)?;

b4.addActionListener(this)?;

this.add(b4)?;

b5?=?new?Button("橡皮擦")?;

b5.setBounds(0,?40,?100,?30)?;

b5.addActionListener(this)?;

this.add(b5)?;

b6?=?new?Button("撤銷")?;

b6.setBounds(110,?40,?100,?30)?;

b6.addActionListener(this)?;

this.add(b6)?;

b7?=?new?Button("全部刪除")?;

b7.setBounds(220,?40,?100,?30)?;

b7.addActionListener(this)?;

this.add(b7)?;

b8?=?new?Button("圓形")?;

b8.setBounds(0,?80,?100,?30)?;

b8.addActionListener(this)?;

this.add(b8)?;

b9?=?new?Button("矩形")?;

b9.setBounds(110,?80,?100,?30)?;

b9.addActionListener(this)?;

this.add(b9)?;

}

/**

?*?@param?args

?*/

public?static?void?main(String[]?args)?{

new?Demo0617()?;

}

@Override

public?void?paint(Graphics?g)?{

if(c?==?null)

c?=?g.getColor();

g.setColor(c);

if(flag){

g.fillOval(x,?y,?w,?h);

}?else?{

g.fillRect(x,?y,?w,?h)?;

}

}

public?void?clear(Graphics?g){

g.setColor(Color.WHITE)?;

g.clearRect(0,?0,?440,?500)?;

}

/**

?*?單擊

?*/

@Override

public?void?mouseClicked(MouseEvent?e)?{

}

/**

?*?按下

?*/

@Override

public?void?mousePressed(MouseEvent?e)?{

x?=?e.getX()?;

y?=?e.getY()?;

}

/**

?*?松開

?*/

@Override

public?void?mouseReleased(MouseEvent?e)?{

int?x?=?e.getX()?;

int?y?=?e.getY()?;

if(x??this.x){

w?=?x?-?this.x?;

}?else?{

w?=?this.x?-?x?;

}

if(y??this.y){

h?=?y?-?this.y?;

}?else?{

h?=?this.y?-?y?;

}

paint(getGraphics())?;

}

/**

?*?鼠標進入事件

?*/

@Override

public?void?mouseEntered(MouseEvent?e)?{

}

/**

?*?鼠標移除事件

?*/

@Override

public?void?mouseExited(MouseEvent?e)?{

}

@Override

public?void?actionPerformed(ActionEvent?e)?{

switch?(e.getActionCommand().hashCode())?{

case?1038352:

//?紅色

c?=?Color.RED?;

break;

case?1293761:

//?黑色

c?=?Color.BLACK?;

break;

case?1293358:

//?黃色

c?=?Color.YELLOW?;

break;

case?1087797:

//?藍色

c?=?Color.BLUE?;

break;

case?27138585:

//?橡皮擦

c?=?Color.WHITE?;

break?;

case?836828:

Graphics?graphics?=?getGraphics()?;

graphics.setColor(Color.WHITE)?;

if(flag){

graphics.fillOval(x,?y,?w,?h)?;

}?else?{

graphics.fillRect(x,?y,?w,?h)?;

}

break;

case?657183940:

//?全部刪除

clear(getGraphics())?;

break;

case?715036:

//?圓形

flag?=?true?;

break;

case?976025:

//?矩形

flag?=?false?;

break;

default:

System.out.println(e.getActionCommand().hashCode());

break?;

}

}

}

在Java中如何用程序畫一個圓

使用java畫圓要用到繪圖類Graphics,下面是實例代碼和運行效果:

package?com.dikea.demo01;

import?java.awt.*;

import?javax.swing.*;

//?java繪圖原理

public?class?demo_01??extends?JFrame?{

MyPanel?mp?=?null;

public?static?void?main(String[]?args)?{

//?TODO?自動生成的方法存根

demo_01?demo01?=?new?demo_01();

}

public?demo_01(){

mp?=?new?MyPanel();

this.add(mp);

this.setSize(400,?300);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setVisible(true);

}

}

//?定義一個MyPanel面板,用于繪圖區(qū)域

class?MyPanel?extends?JPanel{

//覆蓋JPanel

//?Graphics?是繪圖的重要類,可以理解成一支畫筆

public?void?paint(Graphics?g){

//??1.?調(diào)用父類函數(shù)完成初始化任務

//??這句話不可以少

super.paint(g);

//?先畫出一個圓圈

g.drawOval(100,?100,?30,?30);

}

}

代碼復制進ide編程工具,運行效果如下:

java中做一個按鈕,點擊按鈕后畫一個矩形的代碼怎么寫?

兄弟幫你寫了一個:

import java.awt.Button;

import java.awt.Color;

import java.awt.Frame;

import java.awt.Graphics;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.util.Random;

public class Print {

public static void main(String[] args) {

new Te();

}

}

class Te extends Frame implements ActionListener {

Color cc = Color.red;

int x = -20, y = -50;

Random r = new Random();

public Te() {

this.setLayout(null);

Button b = new Button("畫圓");

this.add(b);

b.setBounds(30,30,50,50);

b.addActionListener(this);

this.addWindowListener(new WindowAdapter () {

@Override

public void windowClosing(WindowEvent e) {

System.exit(0);

}

});

this.setBounds(200,200,500,400);

this.setVisible(true);

}

public void actionPerformed(ActionEvent e) {

this.cc = Color.red;

this.x = r.nextInt(400);

do {

int x1 = r.nextInt(300);

this.y = x1;

} while (this.y 50);

this.repaint();

}

@Override

public void paint(Graphics g) {

Color c = g.getColor();

g.setColor(cc);

g.drawRect(x,y,50,50);

g.setColor(c);

}

}

名稱欄目:java畫圓畫矩形代碼 java 畫圓
標題路徑:http://chinadenli.net/article16/dojgidg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供自適應網(wǎng)站用戶體驗移動網(wǎng)站建設電子商務標簽優(yōu)化外貿(mào)網(wǎng)站建設

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務器托管