Posso ter um campo de texto dentro de um label?

O que eu gostaria de fazer é exibir o seguinte em um formulário:

Open [15] minutes before class 

Onde [15] é um campo de texto. Isso é possível?

Use um ‘componente composto’ adicionando as partes necessárias a um JPanel . POR EXEMPLO

TimeBeforeClass

 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); } }); } } 

Note que troquei o ‘campo de texto’ por um JSpinner – um componente mais adequado para selecionar ‘tempo em minutos’.

 Can I have a textfield inside a label? 
  • resposta é, sim, você pode, isso é propriedade básica do Java AWT / Swing Objects

  • JComboBox , JTable , JList , JSpinner , JFile(Color)Chooser …. são compostos JComponents , você pode extrair todo o JComponent e colocar isso juntos novamente.

  • você pode colocar qualquer um dos JComponents no outro

  • somente JFrame/JDialog/JWindow e JPanel foram implementados LayoutManager por padrão na API, para o resto, você tem que implementar o LayoutManager

Eu acho que não entendi. Mas eu tentarei:

Você pode obter o texto de um TextField:

label.setText (“Open” + textField.getText () + “minutos antes da aula”);