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

繪制圖形java代碼,java圖形代碼大全

用java 在窗體中畫一個(gè)簡(jiǎn)單圖形。

幫你改了一下。

成都創(chuàng)新互聯(lián)公司是一家專注網(wǎng)站建設(shè)、網(wǎng)絡(luò)營(yíng)銷策劃、微信小程序開發(fā)、電子商務(wù)建設(shè)、網(wǎng)絡(luò)推廣、移動(dòng)互聯(lián)開發(fā)、研究、服務(wù)為一體的技術(shù)型公司。公司成立十多年以來,已經(jīng)為上1000家成都效果圖設(shè)計(jì)各業(yè)的企業(yè)公司提供互聯(lián)網(wǎng)服務(wù)。現(xiàn)在,服務(wù)的上1000家客戶與我們一路同行,見證我們的成長(zhǎng);未來,我們一起分享成功的喜悅。

你要畫在panel上,然后frame.add(panel)就能顯示。

是不是和applet搞混了,applet復(fù)寫一些方法就能顯示,但現(xiàn)在你編的是java gui

import java.awt.*;

import java.awt.Event.*;

import javax.swing.*; //import javax.swing.Timer;

import java.awt.BasicStroke;

//import java.util.Date;

//import java.text.*;

//import java.util.*;

public class TestGui {

public void paint(Graphics g) {

Graphics2D a2d = (Graphics2D) g;

int x = 120, y = 90, width = 150, height = 150;

a2d.setColor(Color.red);

a2d.setStroke(new BasicStroke(3.0f)); // 設(shè)置線條寬度,3.0即線的寬度

a2d.drawOval(x, y, width, height);

}

public static void main(String[] args) {

JFrame frame = new JFrame();

// frame.add(new paint(),BorderLayout.CENTER);

frame.setSize(500, 500);

frame.setLocation(200, 200);

frame.setVisible(true);

Panel p = new Panel();

frame.add(p);

// frame.paint(null);

// TODO code application logic here

}

}

class Panel extends JPanel {

// 重新覆蓋paint方法

public void paint(Graphics g) {

super.paint(g);

Graphics2D a2d = (Graphics2D) g;

int x = 120, y = 90, width = 150, height = 150;

a2d.setColor(Color.red);

a2d.setStroke(new BasicStroke(3.0f)); // 設(shè)置線條寬度,3.0即線的寬度

a2d.drawOval(x, y, width, height);

}

}

求一個(gè)最簡(jiǎn)單的在JAVA上畫圖形的代碼。

import java.awt.*;

class MyFrame extends Frame{

MyPanel p = new MyPanel();

public MyFrame(){

this.add(p);

this.setSize(300,300);

//省略了關(guān)閉窗口的代碼

this.setVisible(true);

}

public static void main(String[] args){

new MyFrame();

}

class MyPanel extends Panel

{

public void paint(Graphics g){

g.drawLine(0,0,300,300);

}

}

}

java 繪圖程序

我基于你原來畫圖的方法,添加了事件觸發(fā)的命令b[j].setActionCommand("b" + j);否則你不能在事件響應(yīng)處理的方法中使用e.getActionCommand(),而且字符串的比較用equals方法比較好。現(xiàn)在可以運(yùn)行了,你可以看一下:

import java.applet.Applet;

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

public class drawing extends Applet implements ActionListener {

Button b[] = new Button[5];

String fontname = "仿宋_GB2312";

int style = Font.PLAIN;

int size = 24;

int index = 0;

Font myfont;

public void init() {

setSize(700,700);

myfont = new Font(fontname, style, size);

b[0] = new Button("扇形");

b[1] = new Button("圓形");

b[2] = new Button("三角形");

b[3] = new Button("長(zhǎng)方形");

b[4] = new Button("橢圓形");

for (int j = 0; j b.length; j++) {

b[j].setBounds(10, 10, 50, 20);

b[j].addActionListener(this);

b[j].setActionCommand("b" + j);

add(b[j]);

}

}

public void actionPerformed(ActionEvent e) {

if (e.getActionCommand().equals("b0")) {

index = 0;

repaint();

}

if (e.getActionCommand().equals("b1")) {

index = 1;

repaint();

}

if (e.getActionCommand().equals("b2")) {

index = 2;

repaint();

}

if (e.getActionCommand().equals("b3")) {

index = 3;

repaint();

}

if (e.getActionCommand().equals("b4")) {

index = 4;

repaint();

}

}

public void paint(Graphics g) {

switch (index) {

case 0:

g.fillArc(0, 60, 80, 60, 30, 120);

break;

case 1:

g.drawOval( 300, 50, 60, 60);

break;

case 2:

Polygon filledPolygon = new Polygon();

filledPolygon.addPoint(380, 50);

filledPolygon.addPoint(380, 110);

filledPolygon.addPoint(450, 90);

g.drawPolygon(filledPolygon);

break;

case 3:

g.drawRect( 200, 50, 80, 60);

break;

case 4:

g.drawOval(100, 50, 80, 60);

break;

default:

g.fillArc(0, 60, 80, 60, 30, 120);

break;

}

}

/*

* public void paint(Graphics g) { g.fillArc( 0, 60, 80, 60, 30, 120);

* //繪制扇形 g.drawOval( 100, 50, 80, 60); g.drawRect( 200, 50, 80, 60);

* g.drawOval( 300, 50, 60, 60); Polygon filledPolygon=new Polygon();

* filledPolygon.addPoint(380,50); filledPolygon.addPoint(380,110);

* filledPolygon.addPoint(450,90); g.drawPolygon(filledPolygon); }

*/

}

java畫圖形

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Dimension;

import java.awt.Graphics;

import java.awt.event.ItemEvent;

import java.awt.event.ItemListener;

import javax.swing.BorderFactory;

import javax.swing.ComboBoxModel;

import javax.swing.DefaultComboBoxModel;

import javax.swing.JApplet;

import javax.swing.JComboBox;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JSpinner;

import javax.swing.SpinnerNumberModel;

import javax.swing.event.ChangeEvent;

import javax.swing.event.ChangeListener;

public class GraphTest extends JApplet {

private static final long serialVersionUID = -3038851324293731224L;

private PaintingPane paintingPane;

private Painter currentPainter = Painter.CIRCLE;

private final static int DEFAULT_RADIUS = 50;

private int radius = DEFAULT_RADIUS;

private Color color = getColor();

public void init() {

this.setLayout(new BorderLayout());

paintingPane = new PaintingPane();

paintingPane.setPreferredSize(new Dimension(250, 250));

this.add(paintingPane, BorderLayout.CENTER);

JPanel controlPane = new JPanel();

final SpinnerNumberModel sm = new SpinnerNumberModel(DEFAULT_RADIUS, 10, 100, 1);

JSpinner spinner = new JSpinner(sm);

spinner.addChangeListener(new ChangeListener() {

public void stateChanged(ChangeEvent e) {

radius = sm.getNumber().intValue();

color = getColor();

repaint();

}

});

final ComboBoxModel cbm = new DefaultComboBoxModel(Painter.values());

JComboBox combo = new JComboBox(cbm);

combo.addItemListener(new ItemListener() {

public void itemStateChanged(ItemEvent e) {

if (e.getStateChange() == ItemEvent.SELECTED) {

currentPainter = (Painter) cbm.getSelectedItem();

color = getColor();

repaint();

}

}

});

JLabel spinnerLabel = new JLabel("Radius: ");

JLabel comboLabel = new JLabel("Figure: ");

spinnerLabel.setLabelFor(spinner);

comboLabel.setLabelFor(combo);

controlPane.setPreferredSize(new Dimension(150, 250));

controlPane.setBorder(BorderFactory.createLineBorder(Color.BLACK));

controlPane.add(spinnerLabel);

controlPane.add(spinner);

controlPane.add(comboLabel);

controlPane.add(combo);

this.add(controlPane, BorderLayout.EAST);

this.setSize(400, 200);

this.setVisible(true);

}

private enum Painter {

CIRCLE {

void paint(Graphics g, JPanel panel, int parameter,

Color color) {

Dimension d = panel.getSize();

g.setColor(color);

g.fillOval(d.width / 2 - parameter, d.height / 2 - parameter,

parameter * 2, parameter * 2);

}

public String toString() { return "Circle"; }

},

LINE {

void paint(Graphics g, JPanel panel, int parameter,

Color color) {

Dimension d = panel.getSize();

int xOffset = d.width / 2, yOffset = d.height / 2;

g.setColor(color);

g.drawLine(xOffset - parameter, yOffset, xOffset + parameter,

yOffset);

}

public String toString() { return "Line"; }

},

DIAMOND {

void paint(Graphics g, JPanel panel, int parameter,

Color color) {

Dimension d = panel.getSize();

int xCenter = d.width / 2, yCenter = d.height / 2;

int offset = (int) (parameter / SQUARE_ROOT_2);

int[] xCoors = {

xCenter - offset, xCenter, xCenter + offset, xCenter,

};

int[] yCoors = {

yCenter, yCenter + offset, yCenter, yCenter - offset,

};

g.setColor(color);

g.fillPolygon(xCoors, yCoors, 4);

}

public String toString() { return "Diamond"; }

},

TRIANGLE {

void paint(Graphics g, JPanel panel, int parameter,

Color color) {

Dimension d = panel.getSize();

int xCenter = d.width / 2, yCenter = d.height / 2;

int offsetPos = (int) (parameter / SQUARE_ROOT_3);

int offsetNeg = offsetPos / 2;

int offsetX = parameter / 2;

int[] xCoors = {

xCenter - offsetX, xCenter + offsetX, xCenter,

};

int[] yCoors = {

yCenter + offsetNeg, yCenter + offsetNeg,

yCenter - offsetPos,

};

g.setColor(color);

g.fillPolygon(xCoors, yCoors, 3);

}

public String toString() { return "Triangle"; }

},

SQUARE {

void paint(Graphics g, JPanel panel, int parameter,

Color color) {

Dimension d = panel.getSize();

int xCenter = d.width / 2, yCenter = d.height / 2;

int offset = parameter / 2;

int[] xCoors = {

xCenter - offset, xCenter + offset, xCenter + offset,

xCenter - offset,

};

int[] yCoors = {

yCenter + offset, yCenter + offset,

yCenter - offset, yCenter - offset,

};

g.setColor(color);

g.fillPolygon(xCoors, yCoors, 4);

}

public String toString() { return "Square"; }

},

PENTAGON {

void paint(Graphics g, JPanel panel, int parameter,

Color color) {

Dimension d = panel.getSize();

int xCenter = d.width / 2, yCenter = d.height / 2;

int xOffset2 = parameter / 2;

int yOffset3 = (int) (xOffset2 / TANGENT_36);

int yOffset1 = (int) (xOffset2 / SINE_36);

int xOffset1 = (int) (yOffset1 * COSINE_18);

int yOffset2 = (int) (yOffset1 * SINE_18);

int[] xCoors = {

xCenter - xOffset1, xCenter - xOffset2, xCenter + xOffset2,

xCenter + xOffset1, xCenter,

};

int[] yCoors = {

yCenter - yOffset2, yCenter + yOffset3, yCenter + yOffset3,

yCenter - yOffset2, yCenter - yOffset1,

};

g.setColor(color);

g.fillPolygon(xCoors, yCoors, 5);

}

public String toString() { return "Pentagon"; }

},

HEXAGON {

void paint(Graphics g, JPanel panel, int parameter,

Color color) {

Dimension d = panel.getSize();

int xCenter = d.width / 2, yCenter = d.height / 2;

int xOffset = parameter / 2;

int yOffset = (int) (xOffset * SQUARE_ROOT_3);

int[] xCoors = {

xCenter - parameter, xCenter - xOffset, xCenter + xOffset,

xCenter + parameter, xCenter + xOffset, xCenter - xOffset,

};

int[] yCoors = {

yCenter, yCenter + yOffset, yCenter + yOffset,

yCenter, yCenter - yOffset, yCenter - yOffset,

};

g.setColor(color);

g.fillPolygon(xCoors, yCoors, 6);

}

public String toString() { return "Hexagon"; }

};

abstract void paint(Graphics g, JPanel panel, int parameter,

Color color);

static final double SQUARE_ROOT_2 = Math.pow(2.0, 0.5);

static final double SQUARE_ROOT_3 = Math.pow(3.0, 0.5);

static final double SINE_36 = Math.sin(Math.PI / 5);

static final double TANGENT_36 = Math.tan(Math.PI / 5);

static final double COSINE_18 = Math.cos(Math.PI / 10);

static final double SINE_18 = Math.sin(Math.PI / 10);

}

private class PaintingPane extends JPanel {

private static final long serialVersionUID = 8856506825301606303L;

public void paint(Graphics g) {

super.paint(g);

currentPainter.paint(g, this, radius, color);

}

}

private static Color getColor() {

return possibleColors[(int) (Math.random() * 7)];

}

private static final Color[] possibleColors = {

Color.RED, Color.ORANGE, Color.YELLOW, Color.GREEN,

Color.CYAN, Color.BLUE, Color.MAGENTA,

};

}

關(guān)于java中畫圖形的paint方法

代碼如下:

/**分析下例:我們只是new了一個(gè)對(duì)象并沒有調(diào)用Paint()方法那為什么會(huì)畫出圖呢?

* Graphics這個(gè)類的對(duì)象就是一只畫筆,當(dāng)某容器調(diào)用paint()時(shí)就會(huì)在該容器中畫圖。

* 當(dāng)窗口產(chǎn)生時(shí)本身就存在一只畫筆,我們只需要拿到畫筆重寫Paint()便可以隨心作畫。

*每次需要重畫的時(shí)候就會(huì)自動(dòng)調(diào)用paint(Graphics g)(什么時(shí)候需要重畫呢?如當(dāng)窗口被覆蓋又重新置頂時(shí),當(dāng)窗口最小化又最大化時(shí)等等)

*/

總結(jié):我們想要在容器中畫圖時(shí)只需要做的就是:??在該容器中重寫Paint()?系統(tǒng)會(huì)自動(dòng)傳給我們畫筆,自動(dòng)調(diào)用paint方法按照我們的意愿進(jìn)行作畫。

public class TestGraphics extends Frame. {

public static void main(String []args) {

new TestGraphics("畫圖",100,100,200,200,Color.white);

}

public TestGraphics(String s,int x,int y,int w,int h,Color c) {

super(s);

this.setBounds(x, y, w, h);

this.setBackground(c);

this.setVisible(true);

}

public void paint(Graphics g) {

Color c = g.getColor();

g.setColor(Color.magenta);

g.fillOval(100, 100, 50, 50);

g.setColor(Color.green);

g.fill3DRect(60, 100, 50, 50, false);

g.setColor(c);

}

}

小例子2:

import java.awt.*;

import java.awt.event.*;

import java.util.*;

/**

原理是:在Frame中增加成員變量-容器ArrayList,用它來容納點(diǎn),每次點(diǎn)擊鼠標(biāo)就觸發(fā)了事件:往容器中添加一個(gè)點(diǎn),然后立即調(diào)用repaint方法強(qiáng)制畫出容器中所有的點(diǎn)來

所以我們利用容器來"裝"點(diǎn),然后通過iterator來遍歷畫出所有的點(diǎn)。

適配器類:使用適配器類可以只重寫我們需要的方法

因?yàn)檫@些適配器類都已經(jīng)實(shí)現(xiàn)了相應(yīng)的接口即把所有的方法都空實(shí)現(xiàn)了一遍 我們只需要重寫我們需要的方法即可

repaint -調(diào)用- update() - 調(diào)用?- paint();

*/

public class MyFrame. extends Frame. {

ArrayListPointal ;//泛型指定容器中只能放入Point

public MyFrame(String s) {

super(s);

al =new ArrayListPoint();

this.setBounds(100, 100, 200, 200);

this.setBackground(Color.darkGray);

this.setVisible(true);

this.addMouseListener(new MouseAdapter(){//匿名類

@Override

public void mousePressed(MouseEvent e) {

MyFrame. f = (MyFrame)e.getSource();//e是事件,e.getSource()是獲取事件源即窗口 f

f.al.add(new Point(e.getX(),e.getY())); //而e.getX(),e.getY()則是獲取事件發(fā)生的x,y坐標(biāo)

repaint();//每次點(diǎn)擊鼠標(biāo)觸發(fā)事件時(shí)都有了新的點(diǎn),所以強(qiáng)制要求重畫,才能立刻顯示出該點(diǎn)否則只有窗口被最小化又最大化后才能看到剛才的點(diǎn)

}

});

//匿名類:在參數(shù)處我們傳遞的是new WindowAdapter()? {匿名類體} );他沒有名字,我們把它當(dāng)成WindowAdapter來用,為什么可以這樣呢?因?yàn)檎Z(yǔ)法上規(guī)定了匿名類要么是實(shí)現(xiàn)了前面的接口,要么是從前面的類繼承,就著前面父類的名字來寫類體。當(dāng)此類與其他類關(guān)系不大時(shí)可以用匿名類

this.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e){

System.exit(0);

}

});

}

public void paint(Graphics g) {

Iterator Pointit= al.iterator();//泛型指定取出元素時(shí)只能是point

while(it.hasNext()) {

Point p = it.next();//由于使用泛型這時(shí)候就不用強(qiáng)制轉(zhuǎn)換了

Color c = g.getColor();//保護(hù)原有顏色

g.setColor(Color.pink);

g.fillOval(p.x-6, p.y-6, 12, 12);

g.setColor(c);

}

}

public static void main(String []args) {

new MyFrame("點(diǎn)擊");

}

}

分享標(biāo)題:繪制圖形java代碼,java圖形代碼大全
文章網(wǎng)址:http://chinadenli.net/article48/dsgcdhp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化網(wǎng)站建設(shè)面包屑導(dǎo)航網(wǎng)站營(yíng)銷網(wǎng)站導(dǎo)航網(wǎng)站內(nèi)鏈

廣告

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

營(yíng)銷型網(wǎng)站建設(shè)