Frage

Ich versuche, den Text in einem Label dynamisch zu setzen, indem die setText Methode aufrufen, wenn eine Schaltfläche geklickt wird. Hier ist mein Code:

import java.awt.*;
import java.awt.event.*;

class Date {
    public static void main(String[] args) {
        new MainWindow();
    }
}

class MainWindow {
    static Label month = new Label();
    static Label day = new Label();
    static Button submit = new Button("Submit");

    MainWindow() {
        Frame myFrame = new Frame("Date Window");
        myFrame.setLayout(new FlowLayout());
        myFrame.add(month);
        myFrame.add(day);
        myFrame.add(submit);
        submit.addActionListener(new ButtonListener());

        myFrame.addWindowListener(new WindowListener());        
        myFrame.setSize(200, 200);
        myFrame.setVisible(true);
    }
}

class WindowListener extends WindowAdapter {
    @Override
    public void windowClosing(WindowEvent e) {
        System.exit(0);
    }
}

class ButtonListener implements ActionListener  {
    public void actionPerformed(ActionEvent event) {
        if (event.getSource() == MainWindow.submit) {
            MainWindow.month.setText("12");
            MainWindow.day.setText("31");
        } 
    }
}

Wenn ich die beiden Label-Objekte ohne Argumente, die Strings „12“ und „31“ zu initialisieren, die dem setText Methode übergeben werden, sind auf dem Bildschirm nicht sichtbar, wenn der Submit-Button geklickt wird, bis ich auf das Fenster klicken und ziehen sie es zu ändern. Ich habe dies nur auf einem Mac bemerkt. Auf einem PC sind die Saiten sind sichtbar, aber verdeckt, bis ich die Größe des Fensters. Wenn ich jedoch initialisieren die Etiketten wie folgt aus:

    static Label month = new Label("0");
    static Label day = new Label("0");

Auf dem Mac erscheinen die Saiten wie beabsichtigt, jedoch sind sie verdeckt, bis das Fenster verkleinert wird. Was bin ich?

War es hilfreich?
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top