Hallo,
hab ma wieder nen kleines Problem und ich weiß nicht womit das zusammen hängt. Ich hab mit Hilfe mehrere Topics aus diesem Forum und mit dem openbook "Java ist doch keine Insel" mich mal selbst an Swing und deren Komponenten versucht, ohne Editoren zum Erstellen zu verwenden. Hab mir eine eigene Komponente mittels JComponent gebastelt, die nur einen langen Strich zeichnet. Diese Komponente soll allerdings kleiner sein wie der eigentliche Frame, aber egal was ich mache, die Komponente passt sich immer der Größe des Frames an. Könnte das mit dem zu langen Strich zusammen hängen oder muss ich unbedingt mit Layouts arbeiten, um die eigentliche Größe der Komponente festzulegen, aber wozu kann man dann mit setSize die Größe der Komponente festlegen? Ok, viele Fragen auf einmal... hier erstmal der Code, mit dem ich das alles getestet habe:
Gruss
Luni
hab ma wieder nen kleines Problem und ich weiß nicht womit das zusammen hängt. Ich hab mit Hilfe mehrere Topics aus diesem Forum und mit dem openbook "Java ist doch keine Insel" mich mal selbst an Swing und deren Komponenten versucht, ohne Editoren zum Erstellen zu verwenden. Hab mir eine eigene Komponente mittels JComponent gebastelt, die nur einen langen Strich zeichnet. Diese Komponente soll allerdings kleiner sein wie der eigentliche Frame, aber egal was ich mache, die Komponente passt sich immer der Größe des Frames an. Könnte das mit dem zu langen Strich zusammen hängen oder muss ich unbedingt mit Layouts arbeiten, um die eigentliche Größe der Komponente festzulegen, aber wozu kann man dann mit setSize die Größe der Komponente festlegen? Ok, viele Fragen auf einmal... hier erstmal der Code, mit dem ich das alles getestet habe:
Java:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.BorderFactory;
import javax.swing.JComponent;
import javax.swing.JFrame;
/**
*
* @author luni
*/
public class ComponentTest extends JFrame {
Display display;
public ComponentTest() {
super("ComponentTest");
initComponents();
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(1000, 600);
setLocationRelativeTo(null);
setVisible(true);
}
private void initComponents() {
display = new Display();
display.setSize(500, 500);
//display.setPreferredSize( new Dimension(500, 500) );
//display.setLocation(5, 5);
//display.setMaximumSize( new Dimension(500, 500) );
System.out.println( display.getBounds() );
display.setBorder( BorderFactory.createLineBorder( new Color(0, 0, 0) ) );
add(display);
//pack();
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
new ComponentTest();
}
/**
*
* ComponentTest Component Class
*/
static class Display extends JComponent {
@Override
protected void paintComponent(Graphics graphics) {
Graphics2D g = (Graphics2D) graphics;
super.paintComponent(g);
//g.drawLine(1, 100, getWidth()-2, 90);
g.drawLine(1, 100, 1000, 90);
}
}
}
Gruss
Luni