首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我不确定如何从我的文本字段中获取数据

我不确定如何从我的文本字段中获取数据
EN

Stack Overflow用户
提问于 2012-04-14 01:29:31
回答 2查看 298关注 0票数 0

我想从我的文本字段中获取数据,并将其设置为int h,然后让它更改绘图中矩形的大小,但我不确定如何从文本字段中获取数据,我试着在操作中使用e.getsource,但它找不到我的文本字段。我的代码如下:

代码语言:javascript
复制
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) {}

    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-14 01:34:18

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

票数 1
EN

Stack Overflow用户

发布于 2012-04-14 02:40:41

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

代码语言:javascript
复制
  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();
  }
  }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10145493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档