我可以在标签内有文本框吗?

我想要做的是在表单中显示以下内容:

Open [15] minutes before class 

其中[15]是一个文本字段。 这可能吗?

通过将所需的部分添加到JPanel来使用“复合组件”。 例如

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

请注意,我将“文本字段”换成了JSpinner ,这是一个更适合于select“分钟时间”的组件。

 Can I have a textfield inside a label? 
  • 答案是,是的,你可以,这是Java AWT / Swing Objects的基本属性

  • JComboBoxJTableJListJSpinnerJFile(Color)Chooser ….都是复合JComponents ,你可以提取所有的JComponent并把它们放在一起。

  • 你可以把任何JComponents到另一个

  • 只有JFrame/JDialog/JWindowJPanel已经在API中默认实现了LayoutManager , 剩下的则必须实现合适的LayoutManager

我想我还没有明白。 但是,我会尝试:

您可以从TextField获取文本:

label.setText(“Open”+ textField.getText()+“课前分钟”);