「java中设置画笔颜色的」Java设置颜色

博主:adminadmin 2023-01-16 06:30:08 458

今天给各位分享java中设置画笔颜色的的知识,其中也会对Java设置颜色进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java中怎么对特定的一个圆上色

java swing中指定圆的颜色,最常用的有两种方法

方法一:画圆的时候就指定画笔的颜色,那么画出的颜色就是制定的颜色。

public void paint(Graphics g) {

g.setColor(Color.BLUE);

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

}

这种方法的优点: 代码码量少,简洁

                缺点:指定颜色后,不好修改。不够灵活

方法二:指定构造方法中有一个Color变量。设置get set方法

class MyJPanel extends JPanel{

Color c;

public MyJPanel(Color c) {

this.c = c ;

}

@Override

public void paint(Graphics g) {

g.setColor(c);

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

}

public Color getC() {

return c;

}

public void setC(Color c) {

this.c = c;

}

}

方法二的优点:方便灵活,能通过set get方法轻松修改圆圈颜色

  缺点:代码稍多,改变颜色后需要repaint()一下

代码案例供参考

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Graphics;

import javax.swing.JFrame;

import javax.swing.JPanel;

public class Circle extends JFrame{

MyJPanel jp;

public Circle() {

jp = new MyJPanel(Color.RED);

this.setLayout(new BorderLayout());

this.add(jp,BorderLayout.CENTER);

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

this.setDefaultCloseOperation(EXIT_ON_CLOSE);

this.setVisible(true);

try {

Thread.sleep(500);

jp.setC(new Color(210,250,0));

jp.repaint();

} catch (InterruptedException e) {

}

}

public static void main(String[] args) {

new Circle();

}

}

class MyJPanel extends JPanel{

Color c;

public MyJPanel(Color c) {

this.c = c ;

}

@Override

public void paint(Graphics g) {

g.setColor(c);

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

}

public Color getC() {

return c;

}

public void setC(Color c) {

this.c = c;

}

}

用Java一个简单的画图程序

下面是我以前做的小程序,希望能给你点帮助!

package menu;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class DaYin extends JFrame implements ActionListener{

public DaYin() {

Container c=this.getContentPane();

c.setLayout(new BorderLayout());

JMenuBar jmb=new JMenuBar();

JMenu jm=null;

jm=new JMenu("文件");

jmb.add(jm);

jm=new JMenu("编辑");

jmb.add(jm);

jm=new JMenu("打印");

JMenuItem jmi=new JMenuItem("打印预览");

jmi.addActionListener(this);

jm.add(jmi);

jmb.add(jm);

jm=new JMenu("帮助");

jmb.add(jm);

this.setJMenuBar(jmb);

this.setSize(1024,768);

this.setVisible(true);

this.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

System.exit(0);

}

});

}

public static void main(String[] args) {

new DaYin();

}

public void update(Graphics g){

g.setColor(Color.black);

String title[]={"摘要","科目","子目或户名","借方金额","贷方金额"};

String danwei[]={"千","百","十","万","千","百","十","元","角","分"};

int csx=200;//打印x的初始坐标

int csy=200;//打印y的初始坐标

int x=csx;

int y=csy;

int a=x+20;//打印字体x的初始坐标

int b=y+20;//打印字体y的初始坐标

int row=7;//一共打印出几条横线

int cul=5;//一共打印出几条竖线

int hangju=30;//线与线之间的纵向间距

int lieju=100;//线与线之间的横向间距

int yy=hangju*row+y;

int c=yy+20;

g.setFont(new Font("行楷",Font.TYPE1_FONT,24));

g.drawString("记 账 凭 证", x+160, y-40);//打印出记账凭证这几个字

g.drawLine(x+100, y-30, x+340, y-30);//打印出记账凭证下面的那条线

g.setFont(new Font("行楷",Font.TYPE1_FONT,13));

g.drawString("年 月 日 第_______号", x+260, y-10);

//g.drawLine(x+430, y-10, x+470, y-10);

for(int i=0;i=row;i++){

g.drawLine(x, y, cul*lieju+x+25, y);//此循环用于画出表格的行

if(i==0)

y+=hangju*2;

else

y+=hangju;

}

y=csy;

g.drawLine(x+lieju*3, y+hangju, cul*lieju+x, y+hangju);//打印出第一行半的横线

for(int j=0;j=cul;j++){

g.drawLine(x, y, x, row*hangju+y);//此循环用于画出表格的列

x+=lieju;

}

x=csx;

for(int z=0;zcul;z++){

g.setColor(Color.red);//设置颜色

g.setFont(new Font("",Font.TYPE1_FONT,13));//设置表头字体

if(z3)

g.drawString(title[z], a, b+hangju/2);

else

g.drawString(title[z], a, b);//为表格添加表头

a+=lieju;

}//76-89打印出一个表格形状

int xx=lieju*3+x+10;

for(int v=0;v=9;v++){

g.drawLine(xx, y+hangju, xx, row*hangju+y+hangju);//此循环用于画出表格的列

g.setFont(new Font("",Font.TYPE1_FONT,11));

g.drawString(danwei[v], xx-10, y+hangju+20);//为表格添加表头

if(v%2==0)

g.setColor(Color.red);//设置颜色

else

g.setColor(Color.BLUE);//设置颜色

xx+=10;

}

for(int n=0;n9;n++){

g.drawLine(xx, y+hangju, xx, row*hangju+y+hangju);//此循环用于画出表格的列

g.drawString(danwei[n],xx-10, y+hangju+20);//为表格添加表头

if(n%2==0)

g.setColor(Color.red);//设置颜色

else

g.setColor(Color.BLUE);//设置颜色

xx+=10;

}

g.drawString(danwei[9],xx-10, y+hangju+20);

g.setColor(Color.black);//设置颜色

for(int i=0;i=1;i++){

g.drawLine(x,yy , cul*lieju+x, yy);//此循环用于画出表格的行

yy+=hangju;

}

yy=hangju*row+y;

for(int j=0;j=3;j++){

g.drawLine(x, yy, x, (row+1)*hangju+y);//此循环用于画出表格的列

if(j0){

x+=lieju;

}else{

x+=lieju*3;

}

}//112-128打印出表格的最后一行单元格

x=csx;

g.setFont(new Font("",Font.TYPE1_FONT,13));

g.drawString("合 计",x+60, c);

g.drawString("会计主管 记账 出纳 审核 制证", x+30, yy+50);

g.drawLine(cul*lieju+x+25, y, cul*lieju+x+25, (row+1)*hangju+y);//打印出最后一列

g.drawString("记",cul*lieju+x+6, y+15);

g.drawString("账", cul*lieju+x+6, y+35);

g.drawString("√", cul*lieju+x+6, y+55);//134-136为最后一列写入字体

g.drawString("附",cul*lieju+x+35, y+75);

g.drawString("件", cul*lieju+x+35, y+95);

g.drawString("张", cul*lieju+x+35, y+175);//134-136为最后一列后写入字体

}

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

if(e.getActionCommand().equals("打印预览")){

this.repaint();

}

}

}

使用drawLine()做了一个记账凭证。

执行点击"打印"子菜单"打印预览"就可显示出我们所画的"记账凭证表"

希望这个小程序能够给你点灵感

请java高手帮忙不程序,只要帮我在我的程序中加个改变画笔粗细和颜色的代码就行,情况紧急

public void paint(Graphics g) {

Stroke stroke=new BasicStroke(10.0f);//设置线宽为10.0

Graphics2D g2d = (Graphics2D) g;// 获取图形环境

g2d.setStroke(stroke);

g2d.draw(gp);// 绘制路径

}

改成这样的。快。好了,。

颜色的,你自己练练改。道理相同。

加入颜色的是这样的。

public void paint(Graphics g) {

Stroke stroke=new BasicStroke(10.0f);//设置线宽为3.0

Color c= new Color(100, 10, 10) ;//设置颜色R-G-B值 (褐色)

Graphics2D g2d = (Graphics2D) g;// 获取图形环境

g2d.setColor(c);

g2d.setStroke(stroke);

g2d.draw(gp);// 绘制路径

}

你就替换paint方法就可以了。别的不用改

java图形界面 运行时如何在点击鼠标时 改变字体颜色或者大小

首先,必须有一个GUI的类,让它继承JPanel类(javax.swing.JPanel);

让这个类实现MouseListener接口(java.awt.event.MouseListener),并实现此接口的所有方法;

其中有一个mouseClicked(MouseEvent e)方法,就是当该JPanel被鼠标点击时所调用的方法;在此方法中写上修改画笔颜色、字体的代码;

最后,由于继承了JPanel类,故可以重写paint(Graphics g)方法,在此方法中加入一些绘制方法。

示例代码如下:

package com;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class Client extends JPanel implements MouseListener {

private JFrame f;

private Color color;

private Font font;

//为了方便,可以增加一个状态变量

private int state=0;

public Client(){

f=new JFrame("Test");

//此句修改JPanel大小

setPreferredSize(new Dimension(400,300));

setBackground(Color.white);

f.add(this);

//此句让JFrame适应JPanel大小

f.pack();

f.setResizable(false);

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//此句为JPanel对象设置了鼠标事件监听器(MouseListener)

addMouseListener(this);

color=Color.black;

font=new Font("Arial",Font.PLAIN,12);

f.setVisible(true);

}

public void paint(Graphics g){

super.paint(g);

//这2行代码根据成员变量color与font设置了画笔的颜色与字体,可由外部方法更改

g.setColor(color);

g.setFont(font);

//以下为自定义的绘制操作

g.fillRect(50,50,60,45);

g.drawString("Hello this is the test text",50,120);

}

public static void main(String[] args){

Client c=new Client();

//此为循环重绘的代码

while(true){

try{

//每40毫秒(25分之1秒)重绘一次

Thread.sleep(40);

}catch(Exception e){

e.printStackTrace();

}

//调用重绘方法

c.repaint();

}

}

public void stateChanged(){

switch(state){

case 0://状态0

color=Color.black;

font=new Font("Arial",Font.PLAIN,12);

break;

case 1://状态1

color=Color.blue;

font=new Font("Century Gothic",Font.BOLD,12);

break;

default://此为无效状态

}

}

public void mouseClicked(MouseEvent e) {

//此方法在鼠标点击JPanel时自动调用

//此句规定了成员变量state的2种状态,即0,1

state=state=1?0:state+1;

//下面的方法修改了成员变量color和font,从而实现画笔颜色与字体的变更

stateChanged();

}

public void mouseEntered(MouseEvent e) {}

public void mouseExited(MouseEvent e) {}

public void mousePressed(MouseEvent e) {}

public void mouseReleased(MouseEvent e) {}

}

效果:

如果想要让不同的部分绘制成不同的颜色或字体,可在成员变量中增加更多的类似于color与font的对象,仿照上述代码调用。

有关JAVA graphics颜色

这种属于动态绘制,动态绘制一般的做法都是重绘画板(就是调用 JPane 的 repaint 方法),让面板重新执行你重写的 paint() 方法。

这时候,你要控制让其中一个矩形改变颜色, 就在逻辑上改画笔的颜色就行了。

例如:

        // 是否图形颜色需要改变

        boolean isChange = false;

        @Override

public void paint(Graphics g) {

        // 画其他图形

        // ......

        

        // 画颜色变化的图形

        if(isChange) {

            // 存储一下之前画笔的颜色

    Color oldColor = g.getColor();

         // 将画笔颜色改为蓝色

    g.setColor(Color.blue);

    // 画矩形

    g.fillRect(200, 200, 200, 200);

    // 把画笔颜色改原来颜色

    g.setColor(oldColor);

} else {

    // 画矩形

    g.fillRect(200, 200, 200, 200);

}

// 继续画剩余的图形

// ......

}

// 更改那个矩形的颜色

public void changeColor() {

    isChange = true;

    this.repaint();

}

这样你需要更改图形颜色的时候,调用一下changeColor方法就好了。

JAVA drawLine()方法怎么用?

这个方法是画一条直线,都知道两点确定一条直线,而在坐标中由横(X)、纵坐标(y)确定一个点,这四参数实际就是确定两个点,要画的直线的起始点横纵坐标和终点的横纵坐标。

X1,Y1是确定直线的起始点,即横坐标为x1,纵坐标为y1的点。同理x2,y2确定直线的终点。

例:

A(x1,y1) B(x2,y2) 就可以画出直线AB了。

参数:

x1 - 第一个点的 x 坐标。

y1 - 第一个点的 y 坐标。

x2 - 第二个点的 x 坐标。

y2 - 第二个点的 y 坐标。

扩展资料:

注意事项

该方法只能绘制单条直线;如果需要同时绘制多条直线,则可以使用drawLines方法。

基本语法:public void drawLine (float startX, float startY, float stopX, float stopY, Paint paint)

protected void onDraw(Canvas canvas) {

// TODO Auto-generated method stub

super.onDraw(canvas);

paint.setColor(Color.BLACK);                    //设置画笔颜色

canvas.drawColor(Color.WHITE);                  //设置背景颜色

paint.setStrokeWidth((float) 1.0);              //设置线宽

canvas.drawLine(50, 50, 450, 50, paint);        //绘制直线

paint.setStrokeWidth((float) 5.0);              //设置线宽

canvas.drawLine(50, 150, 450, 150, paint);      //绘制直线

paint.setStrokeWidth((float) 10.0);             //设置线宽

canvas.drawLine(50, 250, 450, 250, paint);      //绘制直线

paint.setStrokeWidth((float) 15.0);             //设置线宽

canvas.drawLine(50, 350, 450, 350, paint);      //绘制直线

paint.setStrokeWidth((float) 20.0);             //设置线宽

canvas.drawLine(50, 450, 450, 450, paint);      //绘制直线

}

关于java中设置画笔颜色的和Java设置颜色的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。