【发布时间】:2022-07-24 08:11:14
【问题描述】:
我正在尝试创建一个 GUI,在那个 GUI 中我有不同的 JLabel 值。我希望能够单击一个 JLabel 以在我的 JTextfield 中对其进行编辑(只有 1 个),并且在我按下回车后它应该离开 Editing the JLabel。目前,如果我尝试编辑 JLabel,它会改变,但是当我点击下一个时,旧的也会改变。
这是我的代码:
public class GUI {
JFrame frame;
int n1=1;
int n2=1;
int n3=1;
GUI(){
frame=new JFrame();//creating instance of JFrame
JLabel l1=new JLabel(Integer.toString(n1));
JLabel l2=new JLabel(Integer.toString(n2));
JLabel l3=new JLabel(Integer.toString(n3));
JTextField t=new JTextField();
l1.setBounds(40,50,100, 40);
l2.setBounds(40,100,100, 40);
l3.setBounds(40,150,100, 40);
t.setBounds(20,200,100, 40);
frame.add(l1);
frame.add(l2);
frame.add(l3);
frame.add(t);
l1.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
t.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
l1.setText(t.getText());
n1=parseInt(t.getText());
}
});
}
});
l2.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
t.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
l2.setText(t.getText());
n2=parseInt(t.getText());
}
});
}
});
frame.setSize(400,500);//400 width and 500 height
frame.setLayout(null);//using no layout managers
frame.setVisible(true);//making the frame visible
}
public static void main(String[] args) {
new GUI();
}
}
提前致谢。
-
这让我问一个问题,为什么不简单地在不可编辑和可编辑之间切换无边界/透明
JTextField?
标签: java swing user-interface awt