如何在java中动态设置文本字段的文本?



我正在尝试在单击JFreeChart时更改JTextField的文本。

我定义了两个类,在一个名为First的类中定义了JTextField,在另一个名为Second的类中定义了JFreeChart。我创建了一个代码,用于在单击图表上绘制的点时检索 x 和 y 坐标的值。

该代码使用图表鼠标侦听器来检索坐标。现在我想将这些坐标值传递到其他类First中定义的文本字段中。但我无法动态获取这些值。

我已经创建了四个文本字段,但我只希望其中两个在单击时动态更新值。文本字段显示我分配的newXnewY的值 1。如果我删除分配给变量的值 1newXnewY,它将显示NullPointerException

建议我一个做同样事情的好方法。每当我单击图表上绘制的点时,它们都会显示在文本字段中。文本字段显示我分配的 newX 和 newY 的值 1。

我用于检索 x 和 y 坐标值的代码如下,并将此类命名为 First:

Number newX = 1; //value assigned
Number newY = 1;
chartPanel.addChartMouseListener(new ChartMouseListener() {
public void chartMouseClicked(final ChartMouseEvent event){
try {
XYItemEntity ce = (XYItemEntity) event.getEntity();
newX =   ce.getDataset().getX(ce.getSeriesIndex(), 
ce.getItem());
newY =  ce.getDataset().getY(ce.getSeriesIndex(),  ce.getItem());
// retrieving the x and y co-ordinates.
System.out.println("chartMouseClicked at" + "  " + newX + "    " + newY);
}  
catch (Exception e) {}
}

我用来将值设置为TextField的代码如下: 我已经创建了 class First 的对象,并在该类中调用变量newXnewY

First f = new First("");
Number x = f.newX; //20;
Number y = f.newY; //30;
int xx = x.intValue();
int yy = y.intValue();
int width = 300;
int height = 350;
// converting value into string for textfield
String x1 = String.valueOf(xx);
String y1 = String.valueOf(yy);
String w1 = String.valueOf(width);
String h1 = String.valueOf(height);
Rectangle r = new Rectangle(xx,yy,width,height);
jf1.setText(x1);
jf2.setText(y1);
jf3.setText(w1);
jf4.setText(h1);

不要更新您的文本字段,除非ce instanceof XYItemEntitytrue,就像它们在这里显示的那样。

chartPanel.addChartMouseListener(new ChartMouseListener() {
public void chartMouseClicked(final ChartMouseEvent event) {
ChartEntity ce = cme.getEntity();
XYItemEntity ce = (XYItemEntity) event.getEntity();
if (ce instanceof XYItemEntity) {
XYItemEntity e = (XYItemEntity) ce;
XYDataset d = e.getDataset();
updateTextFields(e, d); // call your update method
}
}
});

相关内容

  • 没有找到相关文章

最新更新