在JFrame中获得鼠标点击的位置

 

 

import java.awt.FlowLayout;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Jframe_1 {
  public static void main(String[] args) {
      JFrame jf = new JFrame("Jframe");
      jf.setLayout(new FlowLayout());
      jf.setSize(300,200);      //设定窗体的宽和高
      jf.setVisible(true);      // 设定窗口为可见
      jf.setLocation(800,200);    // 设定窗体的坐标  
      JLabel lb = new JLabel("此处显示鼠标右键点击后的坐标");   //  创建一个 Label对象
      jf.add(lb);     // 添加标签到窗口上 
      jf.addMouseListener(new MouseListener() {   //为窗口添加鼠标事件监听器
        @Override
        public void mousePressed(MouseEvent e) {
          // TODO Auto-generated method stub
          if(e.getButton()==e.BUTTON3){    // 判断获取的按钮是否为鼠标的右击     
            lb.setText(e.getX()+","+e.getY());     // 获得鼠标点击位置的坐标并发送到标签的文字上
           }
        }
        @Override
        public void mouseClicked(MouseEvent e) {
          // TODO Auto-generated method stub
 
        }
 
        @Override
        public void mouseReleased(MouseEvent e) {
          // TODO Auto-generated method stub
 
        }
 
        @Override
        public void mouseEntered(MouseEvent e) {
          // TODO Auto-generated method stub
 
        }
 
        @Override
        public void mouseExited(MouseEvent e) {
          // TODO Auto-generated method stub
 
        }
 

      });
      }
 
      }

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个简单的Java计算器程序的示例代码,其实现了上述三个功能: ```java import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Calculator extends JFrame implements ActionListener, MouseListener { private JTextField input1, input2, result; private JLabel operator; private JButton equalBtn; private int operatorIndex = 0; private String[] operators = {"+", "-", "*", "/"}; public Calculator() { setTitle("Calculator"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(300, 150); JPanel panel = new JPanel(new GridLayout(1, 5)); input1 = new JTextField(); operator = new JLabel(operators[operatorIndex], JLabel.CENTER); input2 = new JTextField(); equalBtn = new JButton("="); result = new JTextField(); input2.addActionListener(this); equalBtn.addActionListener(this); operator.addMouseListener(this); panel.add(input1); panel.add(operator); panel.add(input2); panel.add(equalBtn); panel.add(result); setContentPane(panel); setVisible(true); } public void actionPerformed(ActionEvent e) { if (e.getSource() == equalBtn || e.getSource() == input2) { double num1 = Double.parseDouble(input1.getText()); double num2 = Double.parseDouble(input2.getText()); double res = 0; switch (operatorIndex) { case 0: res = num1 + num2; break; case 1: res = num1 - num2; break; case 2: res = num1 * num2; break; case 3: res = num1 / num2; break; } result.setText(Double.toString(res)); } } public void mouseClicked(MouseEvent e) { if (e.getClickCount() % 4 == 1) { operatorIndex = (operatorIndex + 1) % 4; operator.setText(operators[operatorIndex]); } } public void mousePressed(MouseEvent e) {} public void mouseReleased(MouseEvent e) {} public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} public static void main(String[] args) { Calculator calc = new Calculator(); } } ``` 在这个程序,我们首先创建了一个 `JFrame` 窗口,并添加了一个包含文本框、标签、按钮的 `JPanel` 面板。在 `JTextField` 和 `JButton` 上添加了 `ActionListener` 监听器,以便在用户按下回车或点击按钮时触发事件。在标签上添加了 `MouseListener` 监听器,以便在用户点击标签时切换运算符。 在 `actionPerformed()` 方法,我们首先判断事件源是等号按钮还是第二个文本框,然后根据当前的运算符计算结果并显示在结果文本框。 在 `mouseClicked()` 方法,我们通过判断鼠标单击次数的余数来切换运算符。例如,如果余数为1,则将运算符标签上的文本改为“-”,并将运算符索引设置为1,从而实现减法运算。 运行这个程序,你将会看到一个简单的计算器界面,可以进行加、减、乘、除四种基本运算。你可以尝试点击标签切换运算符,或者按下回车键直接获得计算结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值