扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
public class BtnText1 extends JFrame implements MouseMotionListener
创新互联服务项目包括覃塘网站建设、覃塘网站制作、覃塘网页制作以及覃塘网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,覃塘网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到覃塘省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
不需要实现MouseMotionListener接口,你已经用了addMouseMotionListener方法
MouseAdapter类已经是实现了MouseMotionListener接口的。
改成
public class BtnText1 extends JFrame
可以运行成功
//这是应用程序,跟java小程序的大体思路还是差不多的,你改改
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.border.Border;
/**
*建立个界面,可以加载本机中图片。
*加载后可以通过鼠标点击获得图片上任意点坐标。
*/
public class MyPicture extends JFrame implements MouseListener{
private JLabel tipLabel;
/**
*main()
*/
public static void main(String[] args){
MyPicture frame = new MyPicture();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
/**
*constructor
*/
public MyPicture(){
setSize(800, 600);//根据要求调整大小
setLocation(100,100);
setTitle("获得图片上任意点坐标");
setResizable(false);
Container con=getContentPane();
ImageIcon bgIcon=new ImageIcon("bgpic.jpg");//注意图片的路径
ImagePanel backpicPanel=new ImagePanel(bgIcon);
backpicPanel.addMouseListener(this);
con.add(backpicPanel,BorderLayout.CENTER);
tipLabel=new JLabel("--------------------提示:坐标依次打印在屏幕上!--------------------");
con.add(tipLabel,BorderLayout.NORTH);
}
/**
*
*/
public void mousePressed(MouseEvent e){
int x=e.getX();
int y=e.getY();
String message="("+x+","+y+")";
tipLabel.setText(message);
System.out.println(message);
}
public void mouseReleased(MouseEvent e){
}
public void mouseEntered(MouseEvent e){
}
public void mouseExited(MouseEvent e){
}
public void mouseClicked(MouseEvent e){
}
}
/**
*类ImagePanel,用于添加背景图片
*/
class ImagePanel extends JPanel{
private Image img;
public ImagePanel (ImageIcon imageIcon){
img=imageIcon.getImage();
}
public void paintComponent(Graphics g){
super.paintComponent(g);
g.drawImage(img,0,0,this);
}
}
import java.util.Date;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class MyTime extends JFrame {//删除了集成的接口
JFrame frame = new JFrame();
JLabel label = null;
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
JButton btn1 = new JButton(" 红 色 ");
JButton btn2 = new JButton(" 绿 色 ");
JButton btn3 = new JButton(" 蓝 色 ");
public MyTime() {
panel1.setBackground(Color.white);
panel2.setLayout(new FlowLayout(FlowLayout.CENTER, 20, 10));
panel1.setBackground(Color.WHITE);
panel2.add(btn1);
panel2.add(btn2);
panel2.add(btn3);
add(panel1, BorderLayout.CENTER);
add(panel2, BorderLayout.SOUTH);// 创建一个监听器对象
btn1.addActionListener(new TimeThread(this).new AL()); // 为按钮注册监听器(使用了TimeThread类的AL内部类)
btn2.addActionListener(new TimeThread(this).new AL());
btn3.addActionListener(new TimeThread(this).new AL());
frame = new JFrame();
label = new JLabel();
label.setIcon(new ImageIcon("QQ拼音截图未命名.jpg"));
label.setFont(new Font("幼圆", Font.LAYOUT_NO_LIMIT_CONTEXT, 76));
label.setForeground(Color.BLACK);
add(label);
setTitle("个性数字时钟");
setResizable(false);// 锁定窗口大小
setSize(320, 160);
setLocation(300, 300);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
}
MyTime mt = new MyTime();
new TimeThread(mt).start();
}
}
class TimeThread extends Thread {
private MyTime mt;
public TimeThread(MyTime mt) {
this.mt = mt;
}
public void run() {
while (true) {
String fullTime = new Date().toString();
String time = fullTime.substring(11, 19);
mt.label.setText(time);
mt.label.repaint();
try {
sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
class AL implements ActionListener { // 内部类
public void actionPerformed(ActionEvent e) {
if ((JButton) e.getSource() == mt.btn1)//btn1属于MyTime类
mt.label.setForeground(Color.RED);
else if ((JButton) e.getSource() == mt.btn2)
mt.label.setForeground(Color.GREEN);
else if ((JButton) e.getSource() == mt.btn3)
mt.label.setForeground(Color.BLUE);
}
}
}
//修改的地方已经注释
画图不能这样来画的,因为Graphics 不能自己来控制:
DrawLine DW=new DrawLine();
DW.g.setColor(Color.orange);
DW.g.drawLine(orgX, orgY, e.getX(), e.getY());
public void mouseRealeased(MouseEvent e)这个方法你拼错了,应该是:
public void mouseReleased(MouseEvent e)
帮你改了下,实现的功能:安下鼠标不放 -- 移动别处 -- 松开,画图
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JPanel;
public class DrawLine extends Frame {
static JPanel drawPanel;
static int orgX;
static int orgY;
static int eX;
static int eY;
public static void main(String[] args) {
// TODO 自动生成方法存根
drawPanel = new JPanel() {
@Override
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2D = (Graphics2D) g;
g2D.drawLine(orgX, orgY, eX, eY);
}
};
DrawLine mainFrame = new DrawLine();
mainFrame.setSize(400, 400);
mainFrame.setTitle("画线");
mainFrame.add(drawPanel);
mainFrame.setVisible(true);
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
e.getWindow().dispose();
System.exit(0);
}
});
mainFrame.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
orgX = e.getX();
orgY = e.getY();
}
public void mouseReleased(MouseEvent e) {
System.out.println("mouseReleased");
eX = e.getX();
eY = e.getY();
drawPanel.repaint();
}
});
}
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流