我的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){};
}
}