Hallo zusammen,
ich programmiere gerade für meine Bachelorarbeit eine graphische Oberfläche, mit der Diagramme gezeichnet werden und später auch verarbeitet werden sollen.
Aktuell wird nach Betätigung eines JButton auf einem erweiterten JPanel eine erweitertes JInternalFrame gezeichnet. Dieses enthält ein JTextField als Attribut und soll nun nach einem Klick beschrieben werden können.
Bis jetzt habe ich es über ein in der GUI eingelassenes Textfeld beschrieben ( ala settext() ), das muss doch aber auch direkt gehen, oder? Das Problem ist, dass das Textfelfd im InternalFrame keinen Focus erhält und sich deshalb nicht beschreiben, bzw ein KeyEvent auslösen lässt. Kann mir eventuell jemand weiterhelfen?
Vielen Dank im Vorraus
PS: Ist mein erster Eintrag in diesem Forum, also bitte ruhig kritische Anmerkung, wenn ich etwas falsch beschrieben habe, oder etwas fehlt!
ich programmiere gerade für meine Bachelorarbeit eine graphische Oberfläche, mit der Diagramme gezeichnet werden und später auch verarbeitet werden sollen.
Aktuell wird nach Betätigung eines JButton auf einem erweiterten JPanel eine erweitertes JInternalFrame gezeichnet. Dieses enthält ein JTextField als Attribut und soll nun nach einem Klick beschrieben werden können.
Bis jetzt habe ich es über ein in der GUI eingelassenes Textfeld beschrieben ( ala settext() ), das muss doch aber auch direkt gehen, oder? Das Problem ist, dass das Textfelfd im InternalFrame keinen Focus erhält und sich deshalb nicht beschreiben, bzw ein KeyEvent auslösen lässt. Kann mir eventuell jemand weiterhelfen?
Vielen Dank im Vorraus
PS: Ist mein erster Eintrag in diesem Forum, also bitte ruhig kritische Anmerkung, wenn ich etwas falsch beschrieben habe, oder etwas fehlt!
Java:
// Das erweiterte JInternalFrane, dass auf dem Panel gezeichnet wird
public class Box extends JInternalFrame
{
private TextField BoxName;
public Box(){
BoxName = new JTextField("");
// Schriftfarbe setzen
BoxName.setForeground(Color.BLACK);
BoxName.setHorizontalAlignment( JTextField.CENTER );
BoxName.addKeyListener( new KeyAdapter()
{
@Override
public void keyReleased ( KeyEvent evt )
{
BoxNameKeyReleased( evt );
}
});
}
Java:
public class Graphic extends JPanel
{
// Hier Ausschnitte aus PaintComponent()
@Override
protected void paintComponent ( final Graphics g )
{
for (Iterator<Box> it = diagramn.getBoxes().iterator(); it.hasNext();)
{
// Zeichnen der Boxen
Box box = it.next();
box.setBounds( controller.checkBounds( box.getBounds() ) );
box.setBorder( BorderFactory.createLineBorder( Color.BLACK, 1 ) );
box.setLayout( new GridLayout(2, 1) );
SwingUtilities.paintComponent( g2d, box, this, box.getBounds() );
}
}
}