真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java畫圖形狀的代碼 java怎么寫圖形化界面

如何用Java編寫一個(gè)繪制圖形的小程序?

import java.awt.*;

10年的臨桂網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。營(yíng)銷型網(wǎng)站的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整臨桂建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“臨桂網(wǎng)站設(shè)計(jì)”,“臨桂網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

import java.awt.event.*;

import java.awt.geom.*;

import javax.swing.*;

//不規(guī)則圖形的繪制

public class IrregularShapeDemo extends JFrame {

GeneralPath gPath= new GeneralPath(); //GeneralPath對(duì)象實(shí)例

Point aPoint;

//構(gòu)造函數(shù)

public IrregularShapeDemo() {

super("不規(guī)則圖形的繪制"); //調(diào)用父類構(gòu)造函數(shù)

enableEvents(AWTEvent.MOUSE_EVENT_MASK|AWTEvent.MOUSE_MOTION_EVENT_MASK); //允許事件

setSize(300, 200); //設(shè)置窗口尺寸

setVisible(true); //設(shè)置窗口可視

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //關(guān)閉窗口時(shí)退出程序

}

public void paint(Graphics g) { //重載窗口組件的paint()方法

Graphics2D g2D = (Graphics2D)g;//獲取圖形環(huán)境

g2D.draw(gPath); //繪制路徑

}

public static void main(String[] args) {

new IrregularShapeDemo();

}

protected void processMouseEvent(MouseEvent e) { //鼠標(biāo)事件處理

if(e.getID() == MouseEvent.MOUSE_PRESSED) {

aPoint = e.getPoint(); //得到當(dāng)前鼠標(biāo)點(diǎn)

gPath = new GeneralPath(); //重新實(shí)例化GeneralPath對(duì)象

gPath.moveTo(aPoint.x,aPoint.y); //設(shè)置路徑點(diǎn)

}

}

protected void processMouseMotionEvent(MouseEvent e) { //鼠標(biāo)運(yùn)動(dòng)事件處理

if(e.getID() == MouseEvent.MOUSE_DRAGGED) {

aPoint = e.getPoint(); //得到當(dāng)前鼠標(biāo)點(diǎn)

gPath.lineTo(aPoint.x, aPoint.y); //設(shè)置路徑

gPath.moveTo(aPoint.x, aPoint.y);

repaint(); //重繪組件

}

}

}

java中做一個(gè)按鈕,點(diǎn)擊按鈕后畫一個(gè)矩形的代碼怎么寫?

兄弟幫你寫了一個(gè):

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);

}

}

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

public?enum?ShapeTypes?{

LINE,?CIRCLE,?RECTANGLE

}

public?interface?Shape?{

void?paint(Graphics?g);

}

public?class?Rectangle?implements?Shape?{

//?矩形左上角的坐標(biāo)

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;

//?圓心的坐標(biāo)

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);

//?畫弧,?當(dāng)弧的寬度和高度一致且從0~360度時(shí)就是原形了

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

}

}

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

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

//?鼠標(biāo)點(diǎn)擊起始坐標(biāo)和當(dāng)前坐標(biāo)

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

//?判斷鼠標(biāo)是否被按下

private?boolean?isMousePressing?=?false;

//?保存當(dāng)前的圖形,?在撤銷和恢復(fù)時(shí)使用

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)?{

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

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

deletedShapes.push(shape);

repaint();

}

}

/**

?*?恢復(fù)撤銷方法

?*/

public?void?redo()?{

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

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

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

currentShapes.push(shape);

repaint();

}

}

/**

?*?設(shè)置命令

?*?

?*?@param?type

?*/

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

this.type?=?type;

}

/**

?*?設(shè)置顏色

?*?

?*?@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);

}

//?如果當(dāng)前鼠標(biāo)沒有釋放

if?(isMousePressing)?{

g.setColor(color);

switch?(type)?{

//?繪制直線

case?LINE:

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

break;

//?繪制矩形

case?RECTANGLE:

if?(currentX??beginX)?{

if?(currentY??beginY)?{

//?如果當(dāng)前位置在起始位置的左上方,?則以鼠標(biāo)當(dāng)前位置為矩形的左上角位置

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

}?else?{

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

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

}

}?else?{

if?(currentY??beginY)?{

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

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

}?else?{

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

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)?{

}

/**

?*?當(dāng)鼠標(biāo)按下的時(shí)候獲得起始坐標(biāo)

?*/

@Override

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

beginX?=?e.getX();

beginY?=?e.getY();

isMousePressing?=?true;

}

/**

?*?當(dāng)鼠標(biāo)釋放時(shí)獲得當(dāng)前坐標(biāo)

?*/

@Override

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

currentX?=?e.getX();

currentY?=?e.getY();

isMousePressing?=?false;

//?當(dāng)釋放鼠標(biāo)時(shí),?將繪制的圖形保存到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("藍(lán)色");

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("恢復(fù)撤銷");

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);

//?初始化設(shè)置:顏色和命令

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?不落的太陽(yáng)(Sean?Yang)

*?@version?1.0

*?@since?JDK?1.8

*?

*/

public?class?SketchpadMain?{

/**

?*?測(cè)試方法

?*?

?*?@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畫圖形狀的代碼 java怎么寫圖形化界面
分享地址:http://weahome.cn/article/dogddpj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部