为什么我不能在另一个 class 中设置进度条的值?
Why can't I set the value of a progress bar in another class?
我试图通过 math1a 设置 math1a 和 math2a 中进度条的值,但只有 math1a 中设置了进度条的值,而 math2a 中的进度条没有设置 class。我尝试对 matha2 进度条使用 set 和 get 方法,但它似乎不让我设置它的值?
////////////////////////////////////////// ////////////////////////////math1 main class//////////// //////////////////////////////////////////////
public class math1 extends javax.swing.JFrame {
public math1() {
initComponents();
}
@SuppressWarnings("unchecked")
private void connectActionPerformed(java.awt.event.ActionEvent evt) {
math1a m1 = new math1a();
m1.setVisible(true);
m1.pbStart();
math2a m2 = new math2a();
m2.setVisible(true);
}
public static void main(String args[]) {
/* Set the Nimbus look and feel */
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new math1().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton connect;
// End of variables declaration
}
////////////////////////////////////////// ////////////////////////////math1a class///////////// ////////////////////////////////////////////////////
public class math1a extends javax.swing.JFrame {
public math1a() {
initComponents();
}
@SuppressWarnings("unchecked")
math2a m2 = new math2a();
public void pbStart(){
//attempt 1
pb1.setValue(100);
m2.setPB(100);
m2.pb2.setValue(m2.getPB());
//attempt 2
m2.setBar(100);
}
public static void main(String args[]) {
/* Set the Nimbus look and feel */
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new math1a().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JProgressBar pb1;
// End of variables declaration
}
////////////////////////////////////////// ////////////////////////////math2a class///////////// ////////////////////////////////////////////////////
public class math2a extends javax.swing.JFrame {
private int bar;
public math2a() {
initComponents();
}
@SuppressWarnings("unchecked")
//attempt 1
public void setPB(int bar){
this.bar = bar;
}
public int getPB(){
return this.bar;
}
//attemp2
public void setBar(int pb2){
this.pb2.setValue(pb2);
}
public static void main(String args[]) {
/* Set the Nimbus look and feel */
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new math2a().setVisible(true);
}
});
}
// Variables declaration - do not modify
public javax.swing.JProgressBar pb2;
// End of variables declaration
}
在 connectActionPerformed
中创建 math2a
的实例并使其可见,这就是屏幕中的 window...
private void connectActionPerformed(java.awt.event.ActionEvent evt) {
math1a m1 = new math1a();
m1.setVisible(true);
m1.pbStart();
math2a m2 = new math2a();
m2.setVisible(true);
}
但在 math1a
中,您创建了 math2a
的第二个实例,它在屏幕上不可见...
@SuppressWarnings("unchecked")
math2a m2 = new math2a();
public void pbStart(){
//attempt 1
pb1.setValue(100);
m2.setPB(100);
m2.pb2.setValue(m2.getPB());
//attempt 2
m2.setBar(100);
}
您要么需要传递您在 connectActionPerformed
中创建的 math2a
的引用,要么只使用您在 math1a
中创建的实例。
就我个人而言,我两者都不做。相反,我会使用某种在 math1a
和 math2a
之间共享的模型,这将允许 math1a
更新模型并通过使用 Observer Pattern,该模型会通知 math2a
然后它可以更新它的进度条。
您可能希望通读 Code Conventions for the Java TM Programming Language,这将使人们更容易阅读您的代码,您也可以更轻松地阅读其他人
我试图通过 math1a 设置 math1a 和 math2a 中进度条的值,但只有 math1a 中设置了进度条的值,而 math2a 中的进度条没有设置 class。我尝试对 matha2 进度条使用 set 和 get 方法,但它似乎不让我设置它的值?
////////////////////////////////////////// ////////////////////////////math1 main class//////////// //////////////////////////////////////////////
public class math1 extends javax.swing.JFrame {
public math1() {
initComponents();
}
@SuppressWarnings("unchecked")
private void connectActionPerformed(java.awt.event.ActionEvent evt) {
math1a m1 = new math1a();
m1.setVisible(true);
m1.pbStart();
math2a m2 = new math2a();
m2.setVisible(true);
}
public static void main(String args[]) {
/* Set the Nimbus look and feel */
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new math1().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton connect;
// End of variables declaration
}
////////////////////////////////////////// ////////////////////////////math1a class///////////// ////////////////////////////////////////////////////
public class math1a extends javax.swing.JFrame {
public math1a() {
initComponents();
}
@SuppressWarnings("unchecked")
math2a m2 = new math2a();
public void pbStart(){
//attempt 1
pb1.setValue(100);
m2.setPB(100);
m2.pb2.setValue(m2.getPB());
//attempt 2
m2.setBar(100);
}
public static void main(String args[]) {
/* Set the Nimbus look and feel */
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new math1a().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JProgressBar pb1;
// End of variables declaration
}
////////////////////////////////////////// ////////////////////////////math2a class///////////// ////////////////////////////////////////////////////
public class math2a extends javax.swing.JFrame {
private int bar;
public math2a() {
initComponents();
}
@SuppressWarnings("unchecked")
//attempt 1
public void setPB(int bar){
this.bar = bar;
}
public int getPB(){
return this.bar;
}
//attemp2
public void setBar(int pb2){
this.pb2.setValue(pb2);
}
public static void main(String args[]) {
/* Set the Nimbus look and feel */
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new math2a().setVisible(true);
}
});
}
// Variables declaration - do not modify
public javax.swing.JProgressBar pb2;
// End of variables declaration
}
在 connectActionPerformed
中创建 math2a
的实例并使其可见,这就是屏幕中的 window...
private void connectActionPerformed(java.awt.event.ActionEvent evt) {
math1a m1 = new math1a();
m1.setVisible(true);
m1.pbStart();
math2a m2 = new math2a();
m2.setVisible(true);
}
但在 math1a
中,您创建了 math2a
的第二个实例,它在屏幕上不可见...
@SuppressWarnings("unchecked")
math2a m2 = new math2a();
public void pbStart(){
//attempt 1
pb1.setValue(100);
m2.setPB(100);
m2.pb2.setValue(m2.getPB());
//attempt 2
m2.setBar(100);
}
您要么需要传递您在 connectActionPerformed
中创建的 math2a
的引用,要么只使用您在 math1a
中创建的实例。
就我个人而言,我两者都不做。相反,我会使用某种在 math1a
和 math2a
之间共享的模型,这将允许 math1a
更新模型并通过使用 Observer Pattern,该模型会通知 math2a
然后它可以更新它的进度条。
您可能希望通读 Code Conventions for the Java TM Programming Language,这将使人们更容易阅读您的代码,您也可以更轻松地阅读其他人