简体   繁体   中英

Is there a method to overwrite the content of a JLabel

I want to know if there is a way of overwriting the text placed into a JLabel with new text.

The code I currently have just creates new labels every time yet does not replace the previously made one.

In relation to my code I want to change the text held in the JLabel from each of the arrays of strings based on which button is pushed.

Have uploaded the code for my action listener.

@Override
public void actionPerformed(ActionEvent event) {
    ImageIcon gws = new ImageIcon("src\\myGui\\sharke.jpg");
    ImageIcon gib = new ImageIcon("src\\myGui\\gibbone.jpg");
    ImageIcon croc = new ImageIcon("src\\myGui\\croce.jpg");
    ImageIcon cat = new ImageIcon("src\\myGui\\cheetahe.jpg");
    String gw[] = {"Shark", "fast", "water", "sea", "a", "b"};
    String gbn[] = {"Gibbon", "climb", "tree", "grass", "a", "b"};
    String crc[] = {"Croc", "scale", "teeth", "river", "a", "b"};
    String cht[] = {"Cheetah", "run", "fur", "sand", "a", "b"};
    for (int i = 0; i < field1.length; i++) {
        field1[i] = new JTextField(i);
        panel6.add(field1[i]);
    }

    if (event.getSource() == quit) {
        System.exit(0);
    } else if (event.getSource() == reset) {
        pic1.setIcon(null);
        pic1.setBorder(null);
    } else if (event.getActionCommand().equalsIgnoreCase("shark")) {
        pic1.setIcon(gws);
        pic1.setBorder(BorderFactory.createEtchedBorder(Color.black, Color.blue));
        for (int i = 0; i < field1.length; i++) {
            field1[i] = new JTextField(gw[i]);
            panel6.add(field1[i]);
        }
    } else if (event.getActionCommand().equalsIgnoreCase("gibbon")) {
        pic1.setIcon(gib);
        pic1.setBorder(BorderFactory.createEtchedBorder(Color.black, Color.orange));

    } else if (event.getActionCommand().equalsIgnoreCase("crocodile")) {
        pic1.setIcon(croc);
        pic1.setBorder(BorderFactory.createEtchedBorder(Color.black, Color.green));
    } else if (event.getActionCommand().equalsIgnoreCase("cheetah")) {
        pic1.setIcon(cat);
        pic1.setBorder(BorderFactory.createEtchedBorder(Color.black, Color.yellow));
    }
}

JLabel.setText()是您要寻找的

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM