我有2個班的.java怎麼看2可運行之間的交流與發展
主要:
public class Controller extends javax.swing.JFrame
{
public static void updateProgressBar(int i) {
jProgressBar1.setValue(i);
jProgressBar1.repaint();
}
public static void main(String args[]) {
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
Controller app = new Controller();
app.setVisible(true);
app.setResizable(false);
}
});
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
ChildModel model = new ChildModel();
Thread t1 = new Thread(model);
t1.start();
}
private javax.swing.JProgressBar jProgressBar1; //Initialized with Netbeans builder
}
我ChildModel(ChildModel.java)計算某些代碼(即大約需要10-20秒),我想在父類(Controller.java)上顯示進度。
這裏是我的ChildModel:
public class ChildModel implements Runnable
{
public ChildModel(){ /* Something */ }
public void complexMath()
{
//Lots of logic here
Controller.updateProgression(purcent);
}
@Override
public void run() {
complexMath();
}
}
的問題顯然是我的靜態無效updateProgressBar無法修改非靜態變量。我怎樣才能做到這一點?
我想你是指變量「purcent」。爲什麼不把它變成靜態的呢? –
Purcent工作正常。問題來自Controller類> updateProgress函數。該函數是靜態的,禁止引用非靜態變量jProgressBar1。我不想將jProgressBar1設置爲靜態。 – Kalzem