DrawLine画线颜色问题


 

观看张老师Java高级教程GUI部分遇到的疑问,现在已经解决了

问题描述在下边代码的头部注释信息中,没找到问题时真是难得不得了,找到问题后真是发现原来这么简单,还是粗心了

package mytest;

import java.awt.Color;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class DrawLine extends Frame
{
 /**画直线,鼠标点击处为起点,释放处为终点
  * 给出起点和终点坐标信息
  *
  * 都还正常,就是设置字体时没有效果,看张老师演示的字和线都同时变颜色了
  * 我这个字不变,线变色了,设置字体后也没有效果,和原来一样,没变粗斜体也没变大
  */

 public DrawLine(String string)
 {
  //调用父类的new Frame(String)构造方法
  super(string);
  //添加窗口监听器,相应关闭操作
  addWindowListener(new WindowAdapter()
  {
   public void windowClosing(WindowEvent e)
   {
    dispose();
    System.exit(0);
   }
  });
  //添加鼠标监听器
  addMouseListener(new MouseAdapter()
  {
   //记录起始点
   int x, y;
   public void mousePressed(MouseEvent e)
   { //鼠标按下记录起始点,给出提示
    x = e.getX();
    y = e.getY();
    getGraphics().drawString("起始点"+x+","+y, x, y);
   }
   public void mouseReleased(MouseEvent e)
   {
    //多次调用getGraphics返回的不是同一个对象,所以记录一下
    Graphics graphics = getGraphics();
    //鼠标释放记录坐标值
    int xx = e.getX();
    int yy = e.getY();
    //如果起始点相同就不用画线了
    if (x==xx && y==yy)
     return;
    //设置颜色
    graphics.setColor(Color.RED);
    //设置字体  斜体加粗
    graphics.setFont(new Font(null, Font.ITALIC|Font.BOLD, 30));
    //画线,给出终点坐标提示
    graphics.drawLine(x, y, xx, yy);
    getGraphics().drawString("终止点"+xx+","+yy, xx, yy);
   }
  });
 }
 
 public static void main(String[] args)
 {
  // 继承了Frame自己就是一个窗体类了
  DrawLine frame = new DrawLine("画线");
  frame.setSize(500, 500);
  frame.setVisible(true);
 }

}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值