簡體   English   中英

將值從JFrame傳遞到JPanel

[英]Passing value from JFrame to JPanel

我正在嘗試繪制圖像像素的Color值的直方圖。 我已經完成了獲取值的工作,但是我想從該值繪制直方圖。 我正在嘗試使用paintComponent()方法在面板上繪制它。

if(ae.getActionCommand()=="Hist")
{      
     jf1.add(new Histo());
     jf1.pack();         
     jf1.setVisible(true);
}

class Histo extends JPanel
{
  Zoom z = new Zoom();
  int x=800;


  public void paintComponent(Graphics g) {
         super.paintComponent(g);
         Graphics2D g2d = (Graphics2D) g;
         g2d.setColor(Color.red);
         g2d.drawLine(100, 100, 100,z.RedC[1]);
         for(int c=1;c<z.count;c++)
         {
           g2d.drawLine(x, z.RedC[c], 500, z.RedC[c]);
           x++;
         }
       }
  }

Zoom是My類的名稱,使用'z'可以訪問變量,但它們的值為零。 我無法獲得從像素讀取的值。 因此,如何在JPanel中訪問它。 請幫我。

在您的JPanel中添加一個構造函數,並為其提供值或至少一個接口,以便稍后獲得該值。

您可以創建JPanel的子類來保存值,並包括該值的getter和setter,如下所示:

public class Mystery extends JPanel{
    int x;

    public Mystery(int passMe){
        super();
        x = passMe;
    }

    public void setX(int changeto){
        x = changeTo; //could also make a method that says x++
    }

    public int getX(){
        return x;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM