Quello che mi piacerebbe fare è visualizzare quanto segue in una forma:
Open [15] minutes before class
Dove [15]
è un campo di testo. È ansible?
Utilizzare un “componente composito” aggiungendo le parti richieste a un JPanel
. PER ESEMPIO
import java.awt.FlowLayout; import javax.swing.*; class TimeBeforeClass { public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { JPanel gui = new JPanel(new FlowLayout(FlowLayout.LEFT, 3,3)); gui.add(new JLabel("Open")); gui.add(new JSpinner(new SpinnerNumberModel(15,0,20,1))); gui.add(new JLabel("minutes before class")); JOptionPane.showMessageDialog(null, gui); } }); } }
Nota che ho scambiato il “campo di testo” per un JSpinner
– un componente più adatto per selezionare “tempo in minuti”.
Can I have a textfield inside a label?
la risposta è sì, è ansible, questa è una proprietà di base di Java AWT / Swing
Objects
JComboBox
, JTable
, JList
, JSpinner
, JFile(Color)Chooser
…. sono composti JComponents
, puoi estrarre tutto JComponent
e rimetterlo insieme.
puoi mettere uno qualsiasi dei JComponents
all’altro
solo JFrame/JDialog/JWindow
e JPanel
hanno implementato LayoutManager
di default nell’API, per il resto di allora devi implementare correttamente il LayoutManager
Penso di non aver capito. Ma ci proverò:
Puoi ottenere il testo da un campo di testo:
label.setText (“Apri” + textField.getText () + “minuti prima della lezione”);