Java 将名称传递给操作
我对编码是新手,我正在尽我最大的努力,但我正在尝试让gui提交一个名称,然后有一个弹出窗口说“你的名字是:”我知道我遗漏了一些明显的东西,所以请对我宽容一些Java 将名称传递给操作,java,swing,user-interface,awt,Java,Swing,User Interface,Awt,我对编码是新手,我正在尽我最大的努力,但我正在尝试让gui提交一个名称,然后有一个弹出窗口说“你的名字是:”我知道我遗漏了一些明显的东西,所以请对我宽容一些 public class Frame1 extends JFrame { private JPanel panel; private JTextField NametextField; public Frame1() { setTitle("Confirm Name"); getCo
public class Frame1 extends JFrame {
private JPanel panel;
private JTextField NametextField;
public Frame1() {
setTitle("Confirm Name");
getContentPane().setLayout(null);
JLabel lblEnterName = new JLabel("Enter Name:");
lblEnterName.setBounds(10, 22, 83, 14);
getContentPane().add(lblEnterName);
NametextField = new JTextField();
NametextField.setBounds(10, 47, 274, 20);
getContentPane().add(NametextField);
NametextField.setColumns(10);
JButton btnNewButton = new JButton("Submit");
btnNewButton.addActionListener(new Frame2());
panel = new JPanel();
add(panel);
setVisible(true);
btnNewButton.setBounds(20, 78, 89, 23);
getContentPane().add(btnNewButton);
}
private class Frame2 implements ActionListener {
public void actionPerformed(ActionEvent e) {
String actionCommand = e.getActionCommand();
if (actionCommand.contains(getName())); {
JOptionPane.showInputDialog("Your name is: " + NametextField );
}
}
public static void main(String[] args) {
}
您基本上是说“您的名字就是这个文本字段对象”。您需要使用文本字段的getText()
方法来获取实际文本
NametextField.getText()
- 注意,
在我看来非常可疑。我不确定这是否是您想要的,尽管我不知道if(actionCommand.contains(getName())
返回什么。我想你要检查动作命令是否等于你要检查的按钮的动作命令。在这种情况下,您需要getName()
if(“Submit.equals(actionCommand))
- 另外请注意,正如@Takendarkk所指出的,括号后的
否定了;
语句,导致执行操作,无论if语句是否为trueif
- 另请注意,正如@MadProgrammer所指出的,远离空布局。学习使用布局管理器,让它们为您调整大小和定位。请参阅
- 另外请注意,您应该遵循Java命名约定。变量名以小写字母开头,使用驼峰式大小写:
→ <代码>名称文本字段NametextField
main()
什么也不做。把new Frame1();
放在那里,如果你没有任何bug,你就会看到结果。你的getName()定义在哪里?你写了太多代码只是为了做你想做的事。我看到if(actionCommand.contains(getName());{
请注意,右边的分号可能不是您想要的。“我知道我遗漏了一些明显的内容”getContentPane().setLayout(null)
将是一个开始。不要使用null
布局。像素完美的布局在现代UI设计中是一种错觉,您无法控制字体、DPI、渲染管道或其他因素,这些因素将改变组件在屏幕上的渲染方式。Swing旨在与布局管理器一起解决这些问题。如果你坚持忽略这些特性而违背API设计,那么就要准备好面对很多麻烦和永无止境的艰苦工作……谢谢你的帮助!
NametextField.getText()