Java 由于某些原因,getText无法在JTextField上工作
这是我的密码 它要求我将changeName设置为静态变量。这没有意义,因为我试图捕获用户输入Java 由于某些原因,getText无法在JTextField上工作,java,swing,jtextfield,gettext,Java,Swing,Jtextfield,Gettext,这是我的密码 它要求我将changeName设置为静态变量。这没有意义,因为我试图捕获用户输入 import java.awt.Color; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt
import java.awt.Color;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.*;
import javax.swing.*;
import CourseProject.General.exitApp;
public class Options extends JPanel{
private JLabel changeLabel;
private JTextField changeName;
private JButton setName;
private JButton exitButton;
public Options(){
GridBagLayout gridbag = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();
c.fill = GridBagConstraints.NORTH;
setBackground(Color.WHITE);
super.setLayout(gridbag);
c.insets = new Insets(10, 10, 10, 10);
changeLabel = new JLabel("Change Company Name:");
changeName = new JTextField(10);
setName = new JButton("Set New Name");
exitButton = new JButton("Exit");
c.gridx = 0;
c.gridy = 0;
c.gridwidth = 2;
add(changeLabel, c);
c.gridx = 0;
c.gridy = 1;
add(changeName, c);
c.gridx = 0;
c.gridy = 2;
c.gridwidth = 1;
add(setName, c);
setName.addActionListener(new setNameAction());
c.gridx = 1;
c.gridy = 2;
add(exitButton, c);
exitButton.addActionListener(new exitApp());
exitButton.setSize(40,40);
}
static class setNameAction implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String str = "";
str = changeName.getText();
}
}
static class exitApp implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
}
}
我特别对这部分代码有问题
static class setNameAction implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String str = "";
str = changeName.getText();
}
}
它要求我将changeName设置为静态变量。这没有意义,因为我正在尝试捕获用户输入。您的内部类被声明为
static
import java.awt.Color;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.*;
import javax.swing.*;
import CourseProject.General.exitApp;
public class Options extends JPanel{
private JLabel changeLabel;
private JTextField changeName;
private JButton setName;
private JButton exitButton;
public Options(){
GridBagLayout gridbag = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();
c.fill = GridBagConstraints.NORTH;
setBackground(Color.WHITE);
super.setLayout(gridbag);
c.insets = new Insets(10, 10, 10, 10);
changeLabel = new JLabel("Change Company Name:");
changeName = new JTextField(10);
setName = new JButton("Set New Name");
exitButton = new JButton("Exit");
c.gridx = 0;
c.gridy = 0;
c.gridwidth = 2;
add(changeLabel, c);
c.gridx = 0;
c.gridy = 1;
add(changeName, c);
c.gridx = 0;
c.gridy = 2;
c.gridwidth = 1;
add(setName, c);
setName.addActionListener(new setNameAction());
c.gridx = 1;
c.gridy = 2;
add(exitButton, c);
exitButton.addActionListener(new exitApp());
exitButton.setSize(40,40);
}
static class setNameAction implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String str = "";
str = changeName.getText();
}
}
static class exitApp implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
}
}
static class setNameAction ...
如果希望能够引用外部类的实例字段,请从类声明中删除静态
引用
否则,您需要将Options
或JTextField
的实例传递给setNameAction
类
你可能想通读一遍,这将使人们更容易阅读你的代码,也让你更容易阅读他人lol这就是我在不知道我在做什么的情况下通过复制和粘贴来抄近路的原因。谢谢@欢迎来到我的世界;)