Ich habe eine Anwendung Berechnung Clock-in Stunden aller sieben Tage in einer Woche. Was ich vorhabe, ist, dass die Benutzer die Eingabe und das Verlassen von Stunden/Minuten jeden Tag einführen und somit diese Daten sammeln, um Berechnungen durchzuführen.[Swing] Fügen Sie das gleiche Label zu verschiedenen Ort in einem Panel, ohne zu kopieren
Der UI-Teil sollte wie:
Monday: mondayEntryHour : mondayEntryMinutes mondayLeaveHour : mondayLeaveMinutes
Tuesday: tuesdayEntryHour : tuesdayEntryMinutes tuesdayLeaveHour : tuesdayLeaveMinutes
....
All, wo ich Daten sammeln, JTextFields
sind, und die :
zwischen ihnen ist ein JLabel
. Alle 14 Labels haben denselben Inhalt, dieselbe Schriftart und denselben Stil, aber ich kann einfach nicht die gleiche Variable erstellen und sie 14-mal überall hinzufügen, da sie nur zum letzten Mal hinzugefügt wurde.
Um zu beweisen, was ich sage, habe ich eine SCCEE hier:
import java.awt.Cursor;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import net.miginfocom.swing.MigLayout;
public class RepeatedJLabel extends JFrame {
public RepeatedJLabel() {
run();
}
public void run() {
JPanel p = new JPanel();
p.setLayout(new MigLayout("debug, fill", "[grow]", "[]10[]10[]"));
JLabel label = new JLabel("MY LABEL 1");
p.add(label, "cell 0 1, grow");
p.add(label, "cell 0 2, grow");
p.add(label, "cell 0 3, grow");
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
getContentPane().setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
getContentPane().add(p);
setVisible(true);
setLocationRelativeTo(null);
setResizable(true);
pack();
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
RepeatedJLabel test = new RepeatedJLabel();
}
});
}
}
Muss ich schaffen 14 Variablen für sie? Es ist dumm. Ich möchte mich nicht mit Copy/Shallow Copy/Deep Copy dieser Variable vermischen, weil es zu einfach ist, herumzualbern. Irgendeine Idee?
erstellen Factory-Methode und es nennen in einer Schleife. –
Und Sie scheinen Variable mit Objekt zu verwirren. Ja, du brauchst 14 JLabel-Objekte, aber du brauchst sicherlich keine 14 JLabel-Variablen. –
........... und ich frage mich, ob eine JTable für diese spezielle Situation nicht am besten funktionieren würde ... –