我正在尝试绘制图像像素的颜色值的直方图。我已经完成了获取值的工作,但我想从这些值中绘制直方图。我试图使用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++;
}
}
}
缩放是我的课程的名称,而且是&#39; z&#39;我可以访问变量,但它们的值为零。我无法获得从像素中读取的值。那么如何在JPanel中访问它。请帮帮我。
答案 0 :(得分:1)
在JPanel中添加一个构造函数,并为其提供值,或者至少提供一个接口以便稍后获取该值。
答案 1 :(得分:0)
您可以创建一个包含该值的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;
}
}