私はちょうどjlabelを数えたいと思う。私は、サイトに投稿されたすべてのソリューションを試しましたが、解決策を見つけることができませんでした。私は初心者ですが、Javaを学ぶのに1ヶ月あります。私の質問があまりにも愚かであれば申し訳ありません。JLabelで変数を変更できないのはなぜですか?
package asdf;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;
import javax.swing.JLabel;
public class asd extends JFrame implements ActionListener {
int a=0; // variable
private JFrame frame;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
asd window = new asd();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public asd() {
super();
Timer time=new Timer(1000, this);
time.start();
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 450, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JPanel panel = new JPanel();
panel.setBounds(20, 11, 137, 111);
frame.getContentPane().add(panel);
panel.setLayout(null);
***JLabel Jtable = new JLabel();
Jtable.setBounds(0, 25, 127, 58);
Jtable.setText("" + a);
panel.add(Jtable);***
System.out.println(a); //it is counting on console but in Jlabel variable is not.
}
@Override
public void actionPerformed(ActionEvent arg0) {
a++;
initialize();
}
}
jlabelを数えたいだけです。私は、サイトに投稿されたすべてのソリューションを試しましたが、解決策を見つけることができませんでした。私は初心者ですが、Javaを学ぶのに1ヶ月あります。私の質問があまりにも愚かであれば申し訳ありません。
を経由して、これを行うことができますか? –
クラスがロードされるときにinitialize()メソッドを1回だけ呼び出すことをお勧めします。その後、Jtable.setText()をactionPerformed()メソッドに移動します。 あなたのクラスは[サブクラス化] JFrameを拡張していますが、 "this"はJFrameのインスタンスにする必要があります。つまり、initialize()メソッドで "this.setBounds()"のような文を使用できます。 また、小文字で始まる変数の名前を付けることをお勧めします。 [JTableの代わりにjTable] – Jeremy
こんにちは@ Eee http://www.oracle.com/technetwork/java/codeconventions-135099.htmlに指定されているJava命名規則に従ってください。答えは – abcOfJavaAndCPP