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

本文介绍了一种在Java图形界面中,通过鼠标点击事件改变字体颜色和大小的方法。创建一个继承JPanel的类,实现MouseListener接口,并在mouseClicked方法中更新颜色和字体。在paint方法中进行绘制操作,通过循环重绘实现效果。
摘要由CSDN通过智能技术生成

展开全部

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

让这个32313133353236313431303231363533e58685e5aeb931333337613739类实现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) {}

}

效果:

fb14539904e341cec5fbd2494fd45830.png

a4de2604ec43e5afdb12f3d6ab22d53b.png

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值