gpt4 book ai didi

java - 未找到变量,即使它位于上面的类中

转载 作者:行者123 更新时间:2023-11-30 02:10:36 24 4
gpt4 key购买 nike

所以我有一个包含 JButton 的 GUI 类,然后我有一个 actionPerformed 类,下面显示了按下按钮时会发生什么。现在,当我执行 if(e.getSource()==search) 时,搜索会显示为红色,并表示在类 GUI 中找不到该变量。尽管它就在那个类中。

我需要一些帮助。

package crimedata;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;


class GUI extends JFrame implements ActionListener {

Connection con = null;

GUI() {
JPanel p = new JPanel();
JFrame f = new JFrame("Crime Data");

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(600, 600);

f.setResizable(true);
f.setLocationRelativeTo(null);
GridBagConstraints gbc = new GridBagConstraints();
getContentPane().setLayout(new GridBagLayout());

gbc.insets = new Insets(5, 5, 5, 5);

JLabel LongLabel = new JLabel("Enter Longitude here");
LongLabel.setForeground(Color.gray);
gbc.gridx = 0;
gbc.gridy = 1;
getContentPane().add(LongLabel, gbc);
JTextField LongText = new JTextField(20);
getContentPane().add(LongText, gbc);

JLabel LatLabel = new JLabel("Enter Latitude here");
LatLabel.setForeground(Color.gray);
gbc.gridx = 0;
gbc.gridy = 2;
getContentPane().add(LatLabel, gbc);
JTextField LatText = new JTextField(20);
getContentPane().add(LatText, gbc);

JLabel LSOANameLabel = new JLabel("Enter LSOA Name here");
LSOANameLabel.setForeground(Color.gray);
gbc.gridx = 0;
gbc.gridy = 3;
getContentPane().add(LSOANameLabel, gbc);
JTextField LSOANameText = new JTextField(20);
getContentPane().add(LSOANameText, gbc);

JButton search = new JButton("Search");
gbc.gridx = 0;
gbc.gridy = -1;
getContentPane().add(search, gbc);
search.addActionListener(this);

JButton exportnoid = new JButton("Export No Crime ID");
gbc.gridx = 0;
gbc.gridy = -1;
getContentPane().add(exportnoid, gbc);

JButton exportdup = new JButton("Export Duplicate ID");
gbc.gridx = 0;
gbc.gridy = -1;
getContentPane().add(exportdup, gbc);

f.add(getContentPane());
pack();
f.setVisible(true);
}

@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==search){
System.out.println("");
} else {

}
}

}

class GUIHandler {
public static void main(String[] args) {
GUI a = new GUI();
}
}

最佳答案

search 变量不是实例变量,它的作用域仅限于构造函数,因此您不能在构造函数之外使用它。

Connection con = null;之后声明JButton search变量。

另请注意,actionPerformed 方法中有空的“else”语句。

关于java - 未找到变量,即使它位于上面的类中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50216226/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com