「java中设置画笔颜色的」Java设置颜色
今天给各位分享java中设置画笔颜色的的知识,其中也会对Java设置颜色进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java中怎么对特定的一个圆上色
- 2、用Java一个简单的画图程序
- 3、请java高手帮忙不程序,只要帮我在我的程序中加个改变画笔粗细和颜色的代码就行,情况紧急
- 4、java图形界面 运行时如何在点击鼠标时 改变字体颜色或者大小
- 5、有关JAVA graphics颜色
- 6、JAVA drawLine()方法怎么用?
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设置颜色的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。