JTextField in Graphics von java.awt?

...komplette Frage anzeigen

2 Antworten

Die bevorzugte Lösung sollte die Verwendung von Layout Managers sein. 

https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html

Zu deinem Quelltext:

JTextField inp = new JTextField();

// falsche Syntax, da dein Kommentar den Methodenaufruf unterbricht inp.setBounds((int)x//Feststehende Kooardinaten der Anwendung, (int)y, 1000, 600);
// nicht notwendig, da bereits true by default inp.setEditable(true);
inp.setBackground(Color.white);
// nicht notwendig inp.paint(g);

Beachte, dass sich das Textfeld derzeit relativ zu seinem Elternelement ausrichtet. Du musst via setLayout das Layout explizit auf null setzen, um absolut positionieren zu können. Orientiere dich dabei an der Java Dokumentation: https://docs.oracle.com/javase/tutorial/uiswing/layout/none.html

LolerMC 23.05.2017, 18:16

das "inp.paint(g)", ist doch notwendig? Wenn ich das Input in mein schon existierende Graphics Oberfläche zu implementieren!

0
regex9 23.05.2017, 20:01
@LolerMC

Da du deinen Code nicht im gegebenen Kontext gepostet hast, konnte ich nur annehmen, dass du das Textfeld via add-Methode der Elternkomponente zu deiner GUI hinzufügen würdest.

Im Graphics-Kontext musst du paint verwenden, um das Textfeld zeichnen zu lassen.

0
regex9 24.05.2017, 22:23
@LolerMC

Simples Beispiel:

import java.awt.*; 
import javax.swing.*; 

public class MyWindow extends JFrame {
public MyWindow(){ setSize(400, 400); setLayout(null);
JTextField textField = new JTextField(20); textField.setBounds(50, 130, 150, 15); add(textField);
setDefaultCloseOperation(EXIT_ON_CLOSE); setVisible(true); }
public void paint(Graphics g){ g.drawLine(50, 50, 200, 200); }
public static void main(String[] args){ new MyWindow(); } }
0

Hast du das Layout deines Fenster auf NULL gesetzt?

Und könntest du vll. n Screenshot hochladen, wo man sieht, wie es aktuell ausschaut?

inp.setBounds((int)x//Feststehende Kooardinaten der Anwendung, (int)y, 1000, 600);

Du weißt, dass alles hinter dem // auskommentiert wird?

LolerMC 23.05.2017, 18:15

das "//" habe ich nachträglich eingefügt um zu erörtern das diese values existieren!

0

Was möchtest Du wissen?