hi,
ich suche Ideen um das folgende problem zu lösen.
Um zu verdeutlichen was ich meine habe ich versucht es grafisch zu verdeutlichen:
http://img254.imageshack.us/my.php?image=ausgabeskalierenbj6.gif
Der Code zum bisherigen Ansatz:
ich suche Ideen um das folgende problem zu lösen.
Um zu verdeutlichen was ich meine habe ich versucht es grafisch zu verdeutlichen:
http://img254.imageshack.us/my.php?image=ausgabeskalierenbj6.gif
Der Code zum bisherigen Ansatz:
Code:
public class FrontendViewer extends JComponent {
private DrawPanel actual;
public FrontendViewer() {
setLayout(null);
}
public void showFrontend(DrawPanel frontend) {
if(actual!=frontend) {
removeAll();
if(frontend!=null) {
add(frontend);
int width = (Integer) frontend.getPropertyModel().getData("width");
int height = (Integer) frontend.getPropertyModel().getData("height");
frontend.setBounds(0,0,width,height);
}
actual = frontend;
revalidate();
repaint();
}
}
public void paint(Graphics g) {
if(actual==null) {
g.setColor(Color.BLACK);
g.fillRect(0,0,getWidth(),getHeight());
}
else {
int width = (Integer) actual.getPropertyModel().getData("width");
int height = (Integer) actual.getPropertyModel().getData("height");
Graphics2D g2d = (Graphics2D) g;
g2d.scale(getWidth()/(double)width, getHeight()/(double)height);
actual.paint(g2d);
}
}
}