3
我无法访问内部类“listPanel”的对象中的变量。 有变量“tutajcos”,但我无法从CosView类中的其他方法访问。无法访问内部类变量
什么问题? Eclipse不会提示我任何东西
package cos.view;
import java.awt.*;
import java.awt.event.*;
import java.util.Observable;
import util.Model;
import util.View;
import javax.swing.*;
import cos.controller.CosController;
import cos.model.CosModel;
public class CosView extends View implements ActionListener {
private JPanel buttonsPanel;
private JPanel listPanel;
private CosModel theModel;
private CosController theController;
public CosView(CosController theController, CosModel theModel) {
this.theModel = theModel;
this.theController = theController;
SwingUtilities.invokeLater(new Runnable() {
public void run() {
buildGui();
}
});
}
private void buildGui() {
setTitle("Program GUI");
listPanel = new ListPanel();
buttonsPanel = new ButtonPanel();
add(buttonsPanel, BorderLayout.NORTH);
add(listPanel, BorderLayout.CENTER);
pack();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 600);
registerWithModel(theModel);
}
class ButtonPanel extends JPanel {
JButton refreshButton = new JButton("Refresh");
JTextField adresField = new JTextField("tutaj link", 10);
public ButtonPanel() {
refreshButton.addActionListener(CosView.this);
add(refreshButton);
add(adresField);
}
}
class ListPanel extends JPanel {
JTextField tutajcos;
public ListPanel() {
tutajcos = new JTextField(8);
add(tutajcos);
}
}
@Override
public void actionPerformed(ActionEvent e) {
String action = e.getActionCommand();
theController.processUserAction(action);
}
@Override
public void update(Observable o, Object arg) {
System.out.println("Updating interface");
if (o instanceof CosModel) {
String content;
//there is a problem-------------
listPanel.tutajcos.setText("siema");
}
}
}
谢谢! private ListPanel listPanel;帮助 – Mateusz