林不知道如何从我的文本字段中获取数据(Im not sure how to get the data

2019-06-23 15:09发布

我想从我的文本字段中的数据,并将其设置为int小时。 并有更改矩形IM绘图的大小,但林不知道如何去从文本框获取数据,我厌倦了使用e.getsource在actionperfomred但它无法找到我的文本字段。 我的代码如下:

import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import javax.swing.*;
import java.net.*;
import java.sql.*;
import java.lang.Object;
import java.awt.Graphics;
import java.awt.Graphics2D;

/**
 * This class demonstrates how to load an Image from an external file
 */
public class test extends Component {

    int x=77, y=441, w=23, h=10;

    BufferedImage img =
  new BufferedImage(100, 50,
                    BufferedImage.TYPE_INT_ARGB);    
   // BufferedImage img;

    public void paint(Graphics g) {
        g.drawImage(img, 0, 0, null);
           // g.fillRect(10,10,10,10);
    }

    public test() {
       try {
           img = ImageIO.read(new File("sales-goal.png"));
       } catch (IOException e) {}


       Graphics2D g = img.createGraphics();
       Color myColor = Color.decode("#32004b");
       g.setColor(myColor);
       g.fillRect(x,y,w,h);
                //77,441,23,10
    }

    public Dimension getPreferredSize() {
        if (img == null) {
             return new Dimension(100,100);
        } else {
           //return new Dimension(img.getWidth(null), img.getHeight(null));
            return new Dimension(300,600);
       }
    }

    public static void main(String[] args) {

        JFrame f = new JFrame("Load Image Sample");
        JTextField textField=new JTextField();
        f.add(textField);
        textField.setBounds(10,10,40,30);
        textField.setVisible(true);

        f.addWindowListener(new WindowAdapter(){
                public void windowClosing(WindowEvent e) {
                    System.exit(0);
                }
            });

        f.add(new test());
        f.pack();
        f.setVisible(true);
    }

    public void actionPerformed(ActionEvent e) {
               // if (e.getSource() == textField) {}

    }
}

Answer 1:

可变textField是本地main 。 如果你想从访问它actionPerformed ,你需要将其更改为一个实例变量。



Answer 2:

是啊。 我同意@jpm。 您需要将其声明为实例变量。 请执行下列操作:-

  public class test extends Component {
       //Declare the variable here.
       private static JTextField textfield;

    public static void main(String[] args) {
       //Whenever you use the textfield use like this. Remove the keyword 'JTextField'.
       textfield = new JTextField();
  }
  }


文章来源: Im not sure how to get the data from my text field