我不知道如何从我的文本字段中获取数据

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

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) {} } } 

变量textFieldmain本地变量。 如果要从actionPerformed访问它,则需要将其更改为实例变量。

是啊。 我同意@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(); } }