数学関数のグラフを描くことができるスイングアプリケーションを開発していました。私はgetGraghics関数を使用していましたが、どのように削除して再描画するか分かりませんでしたので、paintComponent()メソッドをオーバーライドして探したいものを実装しました。ユーザーがボタンをクリックします。それはpaintCompnent()が動作していないようです。私は正確に既存のチュートリアルやスタックオーバフローに関する同様の質問に従ってきました。しかし、それらのどれも私のために働いていませんでした:(それはちょうど意味がありませんでした:(パネルに追加するとpaintComponent()が機能しません
私は一夜以上この問題を抱えて助けてください
以下は関数グラフを描画するためのコードですが、動作していないので、描画用の座標系の部分だけをテスト用に残した後、インスタンスを作成してパネルに追加しようとしたコードですメインクラス
class drawfunction extends JPanel{
@Override
protected void paintComponent(Graphics g){
super.paintComponent(g);
g.setColor(Color.red);
g.drawLine(0, 200, 400, 200);
g.drawLine(200,0 , 200, 400);
}
}
は、メインクラスのコード
JPanel panel = new JPanel();
panel.setBounds(14, 104, 400, 400);
contentPane.add(panel);
panel.setBackground(Color.white);
JButton btnNewButton = new JButton("View the graph");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
//a= Integer.parseInt(cofficient_a.getText());
//b= Integer.parseInt(cofficient_b.getText());
//c= Integer.parseInt(cofficient_c.getText());
//d= Integer.parseInt(cofficient_d.getText());
//e= Integer.parseInt(cofficient_e.getText());
drawfunction a=new drawfunction();
panel.add(a);
});
誰もが、私はこの問題を解決するために何をすべきかを教えてくださいすることができます。ありがとうございました !!!!
さて、二つのこと、1 - パネルのデフォルトサイズは '0x0'と2である - スイングは怠け者である、あなたは' revalidate'と '再描画を呼び出す必要があります'あなたがUIを更新したいとき – MadProgrammer
また、クラス名は大文字で始まるべきです! – camickr
@MadProgrammer私はちょうどパネルのサイズを設定するためにsetPreferredSize()を使用しようとしており、これらの2つの関数を追加しようとしました。ボタンを押すたびに小さな空白の四角が表示されます。 –