一个窗口程序定义如下,修改程序,实现:当鼠标在MainWindow窗口点击时,在窗口标题栏显示点击位置坐标。用实现MouseListener接口和继承MouseAdapter类两种方法实现。
import java.awt.*;
import javax.swing.*;
public class MainWindow {
JFrame jf;
JLabel jl;
public MainWindow(){
jf = new JFrame();
jl = new JLabel(new ImageIcon("src\\chapter9\\school.jpg"));
jf.add(jl,BorderLayout.CENTER);
jf.setTitle("学生管理系统");
jf.setSize(800,600);
Dimension size = Toolkit.getDefaultToolkit().getScreenSize();
jf.setLocation((size.width-jf.getWidth())/2,(size.height-jf.getHeight())/2);
jf.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
jf.setVisible(true);
}
}
试试。
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class MainWindow{
private JFrame jf;
public MainWindow() {
jf=new JFrame("Java第一个窗口");
Container con = jf.getContentPane();
con.setBackground(Color.yellow); //设置窗口背景色
jf.setBounds(50,100,500,200); //设置窗口在屏幕上的位置和大小
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); //释放当前窗口
//1、用实现MouseListener接口实现
//jf.addMouseListener(myMouseListener);
//2、用继承MouseAdapter类实现
jf.addMouseListener(myMouseAdapter);
}
MouseListener myMouseListener = new MouseListener() {
@Override
public void mouseReleased(MouseEvent e) {
System.out.println("鼠标释放");
//鼠标按下后释放触发
}
@Override
public void mousePressed(MouseEvent e) {
System.out.println("鼠标按下");
//鼠标按下时触发
}
@Override
public void mouseExited(MouseEvent e) {
System.out.println("光标移除");
//鼠标的光标移出到组件触发
}
@Override
public void mouseEntered(MouseEvent e) {
System.out.println("光标移动到组件");
//鼠标的光标移动到组件触发
}
@Override
public void mouseClicked(MouseEvent e) {
System.out.println("鼠标发生过单机事件");
//鼠标发生单机事件时触发
if(e.getButton()==e.BUTTON1){ // 判断获取的按钮是否为鼠标的右击
jf.setTitle("MouseListener: " + e.getX()+","+e.getY()); // 获得鼠标点击位置的坐标并发送到标签的文字上
}
}
};
MouseAdapter myMouseAdapter = new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
//System.out.println("鼠标点击了");
jf.setTitle("MouseAdapter: " + e.getX()+","+e.getY());
}
};
public static void main(String[] args) {
new MainWindow();
}
}