<code> Du skapar cmdOK i konstruktorn, då kan du inte använda dig av den utanför cmdOK cannot be resolved
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Bankomat extends JFrame implements ActionListener {
void buildConstraints(GridBagConstraints gbc, int gx, int gy, int gw, int gh, int wx, int wy) {
gbc.gridx = gx;
gbc.gridy = gy;
gbc.gridwidth = gw;
gbc.gridheight = gh;
gbc.weightx = wx;
gbc.weighty = wy;
}
public Bankomat() {
super("Bankomat");
setSize(300, 100);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GridBagLayout gridbag = new GridBagLayout();
GridBagConstraints constraints = new GridBagConstraints();
JPanel pane = new JPanel();
pane.setLayout(gridbag);
// Välkomstrutan
buildConstraints(constraints, 0, 0, 1, 1, 10, 40);
constraints.fill = GridBagConstraints.NONE;
constraints.anchor = GridBagConstraints.NORTH;
JLabel lblWel = new JLabel("Välkommen till bankomaten!", JLabel.LEFT);
gridbag.setConstraints(lblWel, constraints);
pane.add(lblWel);
// Inmatningsruta
buildConstraints(constraints, 0, 1, 1, 1, 0, 40);
constraints.fill = GridBagConstraints.HORIZONTAL;
JTextField txtInmatning = new JTextField("Skriv in ditt bankkontonummer");
gridbag.setConstraints(txtInmatning, constraints);
pane.add(txtInmatning);
// OK-knapp
buildConstraints(constraints, 0, 2, 2, 1, 0, 20);
constraints.fill = GridBagConstraints.NONE;
constraints.anchor = GridBagConstraints.CENTER;
JButton cmdOK = new JButton("OK");
gridbag.setConstraints(cmdOK, constraints);
pane.add(cmdOK);
cmdOK.addActionListener(this);
setContentPane(pane);
setVisible(true);
}
public void actionPerformed(ActionEvent evt) {
Object src = evt.getSource();
// Här blir det fel!
if (src == cmdOK)
setTitle("");
repaint();
}
public static void main(String[] args) {
Bankomat bm = new Bankomat();
}
}</code>
Jag förstår inte varför det blir ett: "cmdOK cannot be resolved" fel i den här koden.
Någon som ser vad som är fel?
/Ale ThoorSv: cmdOK cannot be resolved
konstruktorn.
Om du istället deklarerar skapar den som medlemsvariabel(så den finns i hela din class Bankomat) så kan du använda den i alla dina Bankomat-metoder.
Ex.
public class Bankomat extends JFrame implements ActionListener {
private JButton m_cmdOK = new JButton("OK");
...
}//end class Bankomat
Peter.