[英]JButton in Eclipse: “Button cannot be resolved or is not a field”
Java和此頁面的新功能。 我試圖在按下JButton時執行某些操作。 遵循本教程(德語,抱歉) http://www.java-tutorial.org/actionlistener.html之后 ,我使用了JFrame設計功能並隨后添加了內容:
public class JFrame extends javax.swing.JFrame implements ActionListener
{
private JPanel contentPane;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
JFrame frame = new JFrame();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public JFrame()
{
this.setTitle("BMS Anpassen");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JButton btnFlush = new JButton("Flush!");
btnFlush.setBounds(170, 209, 89, 23);
contentPane.add(btnFlush);
JSpinner spinner = new JSpinner();
spinner.setToolTipText("Gib die Spannung ein!");
spinner.setModel(new SpinnerNumberModel(new Float(3000), new Float(2700), new Float(4100), new Float(100)));
spinner.setBounds(56, 49, 52, 20);
contentPane.add(spinner);
JLabel lblMv = new JLabel("mV");
lblMv.setFont(new Font("Tahoma", Font.PLAIN, 13));
lblMv.setBounds(113, 51, 24, 14);
contentPane.add(lblMv);
JButton btnSetParameters = new JButton("Set Parameters");
btnSetParameters.setBounds(152, 175, 130, 23);
contentPane.add(btnSetParameters);
//Buttons dem Listener zuordnen
btnFlush.addActionListener(this);
btnSetParameters.addActionListener(this);
}
public void actionPerformed(ActionEvent ae){
if(ae.getSource() == this.btnSetParameters){
// Parameter in Config schreiben/Write parameters in Config
FileWriter fw = new FileWriter("ConfigBMS.txt");
BufferedWriter bw = new BufferedWriter(fw);
bw.write("25000");
bw.newLine();
bw.write("42000");
bw.newLine();
bw.write("27000");
bw.newLine();
bw.write("41000");
bw.close();
}
else
{
}
}
}
現在它給我的錯誤消息是“ btnSetParameters無法解析或不是字段”。 在這里閱讀有關JButtons的其他文章對我沒有幫助,或者我聽不懂。 我覺得像this
的if(ae.getSource() == this.btnSetParameters){
有問題,但我不能找到一種方法來解決它。
朝正確方向前進的任何努力,深表感謝,並在此先感謝您,
奧利
您有范圍問題,必須將btnSetParameters聲明為框架成員字段
public class JFrame extends javax.swing.JFrame implements ActionListener {
private JButton btnSetParameters;
並且在構造函數內部沒有,而是使用構造函數來初始化按鈕!
public JFrame() {
....
btnSetParameters = new JButton("Set Parameters");
}
您必須將JButton btnSetParameters
設置為類的字段-當前它僅在構造函數的上下文中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.