java - IntelliJ Java Gui 不添加 JTextField
问题描述
我的问题是 IntelliJ IDE 没有在JTextField
这里添加代码。
public IntellJ (){
JFrame frame = new JFrame();
frame.setVisible(true);
frame.setSize(400,600);
frame.setLocation(400,200);
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel=new JPanel();
setContentPane(panel);
panel.setLayout(null);
frame.add(panel);
JLabel jLabel1=new JLabel("Ogrenci Numaraniz");
JTextField jText=new JTextField("Hi");
jLabel1.setBounds(20,20,150,50);
jLabel3.setBounds(20,70,150,50);
panel.add(jLabel1);
panel.add(jText);
}
如果我要删除 JTextField 并尝试JLabel jText = new JLabel("Hi");
编写此代码是有效的。我不明白为什么JTextField
会出现问题。
解决方案
我认为您程序中的主要问题是您尝试使用组件的绝对定位(在组件上使用panel.setLayout(null)
和使用setBounds()
)。相反,始终在 Swing UI 中使用布局管理器。
此外,frame.setVisible(true)
在设置所有 UI 组件后,最后调用。
我已经对您的代码进行了这些更改并且它可以工作:(
在这里我只是删除setLayout(null)
了 。因此,默认布局管理器正在运行。)
import javax.swing.*;
public class IntellJ {
public IntellJ (){
JFrame frame = new JFrame();
frame.setSize(400,600);
frame.setLocation(400,200);
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel=new JPanel();
frame.add(panel);
JLabel jLabel1=new JLabel("Ogrenci Numaraniz");
JTextField jText=new JTextField("Hi");
panel.add(jLabel1);
panel.add(jText);
frame.setVisible(true);
}
public static void main(String[] args) {
new IntellJ();
}
}
推荐阅读
- azure - Azure Web App Service 自定义域读取证书
- iis - 在 Windows Server 2019 上以域用户身份运行时,IIS 站点不会显示静态内容
- java - 将 PST 时间转换为 GMT
- kotlin - 在 Kotlin 中使用 Elvis 运算符和添加的不完整代码
- ios - NSString.localizedUserNotificationString 和 Xcode xliff 导出
- java - 如何在 Selenium java 中向下滚动元素
- php - 使用 Laravel 集合获取二维数组的最大值
- r - 将多列与其他列进行比较的 T 检验
- vb.net - 在 VB.NET 中创建作用域变量
- html - 某些 HTML 图片无法在某些设备上加载