JTextLabel鼠标事件 - MouseListener无法正常工作

时间:2017-01-14 15:29:00

标签: java swing jtextfield mouselistener

我的Java程序没什么问题。我有两个JTextFields,当我点击它们时我想要清除它们(点击的那个应该被清除 - 就像在网站上一样,当你必须登录时,有一个文本字段说用户名,当您点击输入时,文字会消失)。文本字段naz工作正常,另一个imie以完全相同的方式构建,但不起作用我不知道问题出在哪里。我尝试更改将它们添加到JPanel的顺序,但它没有解决问题。

另一个问题 - 因为我是Java编程的新手,这是创建这样的GUI的好方法吗?有什么建议吗?

以下是我的代码:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class MojGUI{
    JTextField im;
    JTextField naz;


    public static void main(String[] args){
        MojGUI aaa = new MojGUI();
        aaa.doRoboty();
    }

    public void doRoboty(){
        JFrame ramka = new JFrame();
        ramka.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JPanel panel = new JPanel();
        panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));

        JPanel podpanel1 = new JPanel();
        JPanel podpanel2 = new JPanel();

        JLabel imie = new JLabel("Imie:");
        JLabel nazwisko = new JLabel("Naziwsko:");

        im = new JTextField("Wpisz imie", 10);
        imie.addMouseListener(new KlikIm());
        naz = new JTextField("Wpisz nazwisko", 10);
        naz.addMouseListener(new KlikNaz());

        podpanel1.add(imie);
        podpanel1.add(im);
        podpanel2.add(nazwisko);
        podpanel2.add(naz);

        panel.add(podpanel1);
        panel.add(podpanel2);

        ramka.setContentPane(panel);
        ramka.setSize(300, 300);

        ramka.setVisible(true);
    }

    class KlikIm implements MouseListener{
        public void mouseClicked(MouseEvent e){
            im.setText("");
        };
        public void mouseExited(MouseEvent e){};
        public void mouseEntered(MouseEvent e){};
        public void mouseReleased(MouseEvent e){};
        public void mousePressed(MouseEvent e){};
    }

    class KlikNaz implements MouseListener{
        public void mouseClicked(MouseEvent e){
            naz.setText("");
        }
        public void mouseExited(MouseEvent e){};
        public void mouseEntered(MouseEvent e){};
        public void mouseReleased(MouseEvent e){};
        public void mousePressed(MouseEvent e){};
    }
}

0 个答案:

没有答案