Mögliche Duplizieren:
Im not sure how to get the data from my text fieldSeite ist nicht erfrischend oder nicht immer die Eingabe von meinem Textfeld
Ich bin eine Nummer in ein Textfeld eingeben und mit diesem Eingang ein ändern int, das die Größe eines Rechtecks ändern wird, ich bin nicht sicher, ob etwas falsch ist, wo ich nicht die Daten aus diesem Textfeld bekomme oder die Seite nicht neu lädt, nachdem sie diese Daten bekommen hat.
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;
// 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");
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 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();
textField.addActionListener(this);
if (e.getSource() == textField) {
entry= Integer.parseInt(textField.getText());
g.drawString("Test",50,50);
entry=h;
}
}
}
Sie erscheinen auch nicht die Aktion Hörer an der richtigen Stelle zu zuweisen. Aber dein Punkt ist auch definitiv gültig. – gnomed
Wie benutze ich mein globales textField in main? – user1329836
Sie setzen die gesamte Initialisierung in die statische main und aus diesem Grund können Sie nicht auf die globalen Variablen (Instanz) zugreifen. Ich schlage vor, dass Sie die JFrame-Klasse separat erweitern, damit Sie die Instanzvariablen verwenden können. – evanwong