Hallo zusammen,
ich habe folgendes Problem ich habe ein eigene Border-Klasse geschrieben. wenn ich diesen Border um eine Komponente wie z.b JPanel lege klappt alles einwandfrei. Wenn ich aber auf das Panel andere Komponenten lege werden diese komisch angezeigt.
so sollte es nicht aussehen wird es aber angezeigt:
so sollte es eigentlich aussehen:
das Komisch ist. zuerst wird so angezeigt wie das erste bild. geh ich dann über die komponenten dann wird es wie unten normal angezeigt.
Was muss ich machen damit das richtig angezeigt wird??? Muss man irgentwie repaint oder ähnliches beim Border machen, oder beim Panel welches dann den Border kriegt?
hier noch meine Borderklasse:
vielleicht kann jemand helfen. danke im voraus.
ich habe folgendes Problem ich habe ein eigene Border-Klasse geschrieben. wenn ich diesen Border um eine Komponente wie z.b JPanel lege klappt alles einwandfrei. Wenn ich aber auf das Panel andere Komponenten lege werden diese komisch angezeigt.
so sollte es nicht aussehen wird es aber angezeigt:
so sollte es eigentlich aussehen:
das Komisch ist. zuerst wird so angezeigt wie das erste bild. geh ich dann über die komponenten dann wird es wie unten normal angezeigt.
Was muss ich machen damit das richtig angezeigt wird??? Muss man irgentwie repaint oder ähnliches beim Border machen, oder beim Panel welches dann den Border kriegt?
hier noch meine Borderklasse:
Code:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Border;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Insets;
import javax.swing.border.AbstractBorder;
public class HorizontalDashedBorder extends AbstractBorder {
protected Color lineColor;
public HorizontalDashedBorder() {
lineColor = Color.DARK_GRAY;
}
public Insets getBorderInsets(Component c) {
return new Insets(1, 1, 1, 1);
}
public boolean isBorderOpaque() {
return false;
}
public void paintBorder(Component c, Graphics g, int x, int y, int width,
int height) {
Color oldColor = g.getColor();
g.setColor(lineColor);
((Graphics2D) g).setStroke(new BasicStroke(1, 0, 0, 1, new float[]{3f, 3f}, 0));
int i = 0;//Abstand nach innen.
// g.drawRect(x + i, y + i, width - i - i - 1, height - i - i - 1);//Rechteck kommplette Umrandung
g.drawLine(x, y, width,0);//horizontalline oben
//g.drawLine(0, 0, 0,height);//Verticalline
g.drawLine(0, height-1, width,height-1);//horizontalline unten
// System.out.println(x);
// System.out.println(y);
// System.out.println(width);
// System.out.println(height);
g.setColor(oldColor);
//links
// for(int i = y; (i + 10) <= height; i+=20){
// g.drawLine(x, i, x, i+length);
// }
//rechts
// for(int i = y; (i + 10) <= height; i+=20){
// g.drawLine(width - 1, i, width - 1, i+length);
// }
re
}
}
vielleicht kann jemand helfen. danke im voraus.