title image


Smiley paint bei eigener Komponente
Guten Tag zusammen,



ich versuche gerade zum ersten Mal, eine eigene GUI-Komponente zu basteln - eine Box mit vier Textfeldern drin (TextFieldBox). Da man aber nichts sieht, muss meine paintComponent-Methode falsch sein, obwohl sie derzeit zum Testen nur ein

Rechteck malen soll. Offenbar wird sie gar nicht angesprochen.

Wenn das dann klappt, ist die nächste Frage: Muss ich die vier Textfelder wirklich malen, oder kann ich das nicht über deren paint-Methode machen lassen?



Gruß

Jörg



import java.awt.*;

import java.awt.event.*;

import javax.swing.*;



public class BoxTest extends JFrame

{

public BoxTest()

{

setBounds(400,400,400,300);

setDefaultCloseOperation(EXIT_ON_CLOSE);

Container cp=getContentPane();

cp.setLayout(null);

JTextField tf1= new JTextField();

JTextField tf2= new JTextField();

tf1.setBounds(30,50,200,20);

tf2.setBounds(30,80,200,20);

TextFieldBox cm= new TextFieldBox(270,50,25);

cp.add(tf1);

cp.add(tf2);

cp.add(cm);

setVisible(true);

}



public static void main(String[] args)

{ new BoxTest();

}

}





class TextFieldBox extends JComponent

{

int x,y,h;

Box tfBox;

private JTextField tf1,tf2,tf3,tf4;



public TextFieldBox(int x, int y, int h)

{

this.x=x;

this.y=y;

this.h=h;

tfBox= Box.createVerticalBox();

tfBox.setBorder (BorderFactory.createLineBorder(Color.GRAY,5));

tf1 = new JTextField(5);

tf2 = new JTextField(5);

tf3 = new JTextField(5);

tf4 = new JTextField(5);

tfBox.add(tf1);

tfBox.add(tf2);

tfBox.add(tf3);

tfBox.add(tf4);

tfBox.setBounds(x,y,52,4*h+10);

}



public void paintComponent(Graphics g)

{ super.paintComponent(g);

Rectangle drawHere = g.getClipBounds();

System.out.println(drawHere);

g.setColor( getForeground() );

g.fillRect(300, 30, 50, 120);

// tfBox.paintComponent(g); // has protected access in javax.swing.JComponent

}



}





geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: