Kargan Skrevet 23. februar 2010 Del Skrevet 23. februar 2010 (endret) private String fileName ; private PlanarImage srcImage; private DisplayJAI srcdj; private JFrame frame; //Konstruktør public ImageHandler (JFrame frame){ this.frame = frame; fileName = "src/icon/test.jpg"; try{ srcImage = JAI.create("fileload",fileName); }catch(IllegalArgumentException e){ System.out.println(e.getMessage()); OpenFile OF = new OpenFile(); fileName = OF.getFile().getAbsolutePath(); srcImage = JAI.create("fileload",OF.getFile().getAbsolutePath()); } srcdj = new DisplayJAI(srcImage); frame.add(srcdj,BorderLayout.CENTER); frame.setSize(getWidth()+50, getHeight()+50); frame.setTitle("Bilde Butikk - " + fileName); frame.setVisible(true); } Programme kjører så si feilfritt, men har problemmer med at "srcdj" ikke vil legge seg mitt i frame'en min(Se vedlagt bilde). (Noe jeg trodde BorderLayout.CENTER, skulle fikse for meg) Noen som har noen tips til hvordan jeg kan løse dette på best mulig måte? Endret 23. februar 2010 av Kargan Lenke til kommentar
Cemi Skrevet 23. februar 2010 Del Skrevet 23. februar 2010 Du må vel enten sette BorderLayout eller bruke ContentPane for å kunne benytte BorderLayout om ikke jeg tar helt feil? http://java.sun.com/docs/books/tutorial/uiswing/layout/border.html The following code adds components to a frame's content pane. Because content panes use the BorderLayout class by default, the code does not need to set the layout manager. Lenke til kommentar
Kargan Skrevet 23. februar 2010 Forfatter Del Skrevet 23. februar 2010 Du må vel enten sette BorderLayout eller bruke ContentPane for å kunne benytte BorderLayout om ikke jeg tar helt feil? http://java.sun.com/docs/books/tutorial/uiswing/layout/border.html The following code adds components to a frame's content pane. Because content panes use the BorderLayout class by default, the code does not need to set the layout manager. Er det ikke det jeg gjør her da ? frame.add(srcdj,BorderLayout.CENTER) Lenke til kommentar
RavnTM Skrevet 23. februar 2010 Del Skrevet 23. februar 2010 JFrame sin standard LayoutManager er BorderLayout, så man trenger ikke å sette den. Du kan prøve å bruke FlowLayout: frame.setLayout(new FlowLayout(FlowLayout.CENTER)); frame.add(srcdj); Lenke til kommentar
Cemi Skrevet 23. februar 2010 Del Skrevet 23. februar 2010 (endret) Både i kode eksempelet på java.sun.com sine sider, og på det "fullstendige kodeeksempelet" så benytter de ContentPane for å sette borderLayout. Så dersom du ikke får det til å fungere med noe annet ville jeg ihvertfall prøve å bruke det for å se om det gjør noen forskjell. Koden ville da se slik ut Container pane = frame.getContentPane(); pane.add(srcdj,BorderLayout.CENTER); frame.pack(); frame.setSize(getWidth()+50, getHeight()+50); frame.setTitle("Bilde Butikk - " + fileName); frame.setVisible(true); Endret 23. februar 2010 av Cemi Lenke til kommentar
RavnTM Skrevet 23. februar 2010 Del Skrevet 23. februar 2010 Det vil jeg tro er fordi kodeeksemplene er utdaterte. Det at man kan gjøre ting som å legge til elementer direkte på JFrame kom i senere utgaver av Java. pane.add(srcdj, BorderLayout.CENTER) setter ikke BorderLayout, men sier til panelet at den skal vise det elementet sentrert om den er satt til BorderLayout. Man setter et panel til BorderLayout sånn her: pane.setLayout(new BorderLayout()) men hvis du kjører denne koden her JFrame fr = new JFrame(); System.out.println(fr.getLayout()); så vil du se at den er satt til BorderLayout fra før av. Lenke til kommentar
Kargan Skrevet 23. februar 2010 Forfatter Del Skrevet 23. februar 2010 JFrame sin standard LayoutManager er BorderLayout, så man trenger ikke å sette den. Du kan prøve å bruke FlowLayout: frame.setLayout(new FlowLayout(FlowLayout.CENTER)); frame.add(srcdj); Fiksa det nesten, den er ikke helt center silt. Ser ut som en kombinasjon av .NORTH og .CENTER Lenke til kommentar
Unlimited LTD Skrevet 23. februar 2010 Del Skrevet 23. februar 2010 Vet ikke helt om det er riktig, eller om det går med JAI, men du kan jo se om .setHorisontalAlignment(SwingConstants.CENTER) går. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå