【发布时间】:2023-04-10 23:13:01
【问题描述】:
电子邮件字段覆盖在名称字段上......并且按钮未显示。
我正在尝试制作一个简单的注册屏幕。
package javainterfacegrafica;
import java.awt.Container;
import javax.swing.JButton;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class JavaInterfaceGrafica extends JFrame {
private void TelaJava(){
Container janela = getContentPane();
setLayout(null);
//Definindo os rótulos
JLabel labelUsername = new JLabel("Username: ");
JLabel labelPassword = new JLabel("Password: ");
JLabel labelConfirmPassword = new JLabel("Confirm Pass.: ");
JLabel labelName = new JLabel("Name: ");
JLabel labelEmail = new JLabel("Email: ");
labelUsername.setBounds(50,40,100,20);
labelPassword.setBounds(50,80,100,20);
labelConfirmPassword.setBounds(50,120,120,20);
labelName.setBounds(50,160,100,20);
labelEmail.setBounds(50,160,100,20);
JFormattedTextField jFormattedTextUsername = new JFormattedTextField();
JFormattedTextField jFormattedTextPassword = new JFormattedTextField();
JFormattedTextField jFormattedTextConfirmPassword = new JFormattedTextField();
JFormattedTextField jFormattedTextName = new JFormattedTextField();
JFormattedTextField jFormattedTextEmail = new JFormattedTextField();
jFormattedTextUsername.setBounds(150,40,100,20);
jFormattedTextPassword.setBounds(150,80,100,20);
jFormattedTextConfirmPassword.setBounds(150,120,100,20);
jFormattedTextName.setBounds(150,160,180,20);
jFormattedTextEmail.setBounds(150,160,180,20);
//Botão
JButton btn = new JButton("Salvar");
//Adiciona os rótulos e os campos de textos com máscaras na tela
janela.add(labelUsername);
janela.add(labelPassword);
janela.add(labelConfirmPassword);
janela.add(labelName);
janela.add(labelEmail);
janela.add(jFormattedTextUsername);
janela.add(jFormattedTextPassword);
janela.add(jFormattedTextConfirmPassword);
janela.add(jFormattedTextName);
janela.add(jFormattedTextEmail);
janela.add(btn);
setSize(800, 600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
JavaInterfaceGrafica jig = new JavaInterfaceGrafica();``
jig.TelaJava();
}
}
【问题讨论】:
-
1) 不要在问题描述中重复相同的句子。 2) 不要使用空布局和 setBounds()。管理边界会给您带来问题(正如您所注意到的),因为并非所有值都是唯一的,并且您没有为按钮指定边界。 3) 相反,您应该使用
Layout Managers。 Swing 旨在与布局管理器一起使用。阅读 Layout Managers 上的 Swing 教程部分。我建议您可以使用GridBagLayout以网格形式显示组件。
标签: java swing layout-manager null-layout-manager