Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中动态设置textfield的文本?_Java_Swing_Jtextfield_Jfreechart - Fatal编程技术网

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

如何在java中动态设置textfield的文本?,java,swing,jtextfield,jfreechart,Java,Swing,Jtextfield,Jfreechart,我正在尝试更改JTextField的文本,同时单击JFreeChart 我定义了两个类,在一个名为First的类中定义了JTextField,在另一个名为Second的类中定义了JFreeChart。我创建了一个代码,当我点击图表上绘制的点时,检索x和y坐标的值 代码使用图表鼠标侦听器检索坐标。现在我想将这些坐标值传递到在其他类中首先定义的文本字段中。但我无法动态获取这些值 我已经创建了四个文本字段,但我只希望其中两个字段在单击时动态更新值。文本字段显示我分配的newX和newY的值1。如果我删

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

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

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

我已经创建了四个文本字段,但我只希望其中两个字段在单击时动态更新值。文本字段显示我分配的
newX
newY
的值1。如果我删除分配给变量
newX
newY
的值1,它将显示
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
的代码如下: 我首先创建了类的对象,并在此类中调用变量
newX
newY

    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);

除非XYItemEntity的
ce instanceof
true
,否则不要更新文本字段,如图所示


这就是你要找的吗?为了更快地获得更好的帮助,请发布一篇文章。还要看一看,每当我点击这些点时,JTextField并没有更新这些值。它只显示默认值,在我的情况下,默认值设置为1。我希望textfield在单击时更新值。
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
        }
    }
 });