我无法获得如何在我的按钮或文本字段之外放置文本,当我为标签和文本字段(从互联网上复制)制作单独的代码时,它正在工作,但它在这种情况下,请告诉我如何使其工作?我有一个想法,我可能不得不使用一些框架或一些布局,但它是否有必要?请基本要点。谢谢。 :
public class UIClass extends JFrame {
public UIClass()
{ super("GUIPart1");
super.setBounds(50,50,1000,700);
super.setResizable(true);
super.setVisible(true);
super.setDefaultCloseOperation(EXIT_ON_CLOSE);
// Button
JButton btn1=new JButton();
btn1.setBounds(50,50, 100, 50);
super.add(btn1);
super.setLayout(null);
btn1.setText("Test");
//TextField
JTextField tf1=new JTextField(15);
super.add(new JLabel("Label :"));
super.add(tf1);
tf1.setBounds(100,100,200,200);
//OptionPane
JOptionPane text=new JOptionPane();
String Message=JOptionPane.showInputDialog("My Message");
JOptionPane.showMessageDialog(null,"Thank you");
}
public static void main(String args[])
{
UIClass u=new UIClass();
}
}
答案 0 :(得分:0)
你应该致电
this.repaint();
最后。我不建议在JavaDoc中使用setBounds
,它读取:
此方法更改与布局相关的信息,因此使组件层次结构无效。
当您调整窗口大小时显示。这适用于带
的代码JLabel jl=new JLabel("Label : "); jl.setBounds(300,300,400,400); super.add(jl);
正如你在评论中提到的那样......
答案 1 :(得分:0)
在原始代码中,您将容器布局显式设置为null。 在这种情况下,您必须指定添加的每个其他组件的位置和大小,并且仅为按钮和文本字段组件执行此操作。
您在评论中发布的代码使用BorderLayout作为LayoutManager,它会根据自己的策略自动调整每个组件的大小和位置。
我强烈建议您学习如何使用LayoutManagers,因为它们是Java UI环境中的一个关键组件,至少是BorderLayout和GridLayout,因为如果您的应用程序不是太复杂,他们应该这样做。