2012-04-13 6 views
0

自分のテキストフィールドが自分のJframeに追加されていないため、このテキストフィールドを使用してペイントの矩形の高さを変更することができます。そのフィールドから値を取得するために、うまくいけば、それは正しい値jFrameにTextFieldを追加していない

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; 


public class Test extends JPanel implements ActionListener{ 

    JTextField textField; 
    JFrame f=new JFrame(); 
    int x=77, y=441, w=23, h=10, entry; 
    BufferedImage img=null; 

    public void init(){ 
     JTextField textField=new JTextField(); 
     f.add(textField); 
     textField.setBounds(10,10,40,30); 
     textField.setVisible(true); 
     textField.addActionListener(this); 
    } 

    // BufferedImage img; 

    public static void main(String[] args) { 
     BufferedImage img =new BufferedImage(100, 50,BufferedImage.TYPE_INT_ARGB); 
     //textField = new JTextField(); 
     JFrame f = new JFrame("Load Image Sample"); 

     /*textField=new JTextField(); 
     textField.addActionListener(this); 
     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 paintComponent(Graphics g) { 
     g.drawImage(img, 0, 0, null); 

     Graphics2D i = img.createGraphics(); 
     Color myColor = Color.decode("#32004b"); 
     i.setColor(myColor); 
     i.fillRect(x,y,w,h); 

      // g.fillRect(10,10,10,10); 
    } 

    public Test() { 

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



       //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 void actionPerformed(ActionEvent e) { 

     Graphics g= getGraphics(); 


       if (e.getSource() == textField) { 
        entry= Integer.parseInt(textField.getText()); 
        g.drawString("Test",50,50); 

        entry=h; 

       } 

    } 
} 
+1

[私のテキストフィールドからデータを取得する方法はわかりません](http://stackoverflow.com/questions/10145493/im-not-sure-how-to-get-the-データfrom-my-text-field) – trashgod

+0

ランダムコメント:a)paintComponentのsuper呼び出し(b)2つのJFrameがあります。c)getPrefのハードコードされたサイズを返すことは意味がありません。私は;)、コメントされた行は行く方法ですd)決してeverGetGraphicsを使用しないe)never setever setBounds f)なぜあなたは画像のグラフィックスをペイントしていますか?コードは混乱です。一歩踏み込んで教科書の最初のページからやり直すことをお勧めします – kleopatra

答えて

2

で画像を再描画しますしようとactionperfomredイムでは、私はあなたのinitメソッドを呼び出し

2

にinitメソッドを呼び出して、決してので、それがあるとしますあなたは大丈夫でしょう

関連する問題