Avatar billede bsp Nybegynder
17. oktober 2002 - 16:31 Der er 8 kommentarer og
1 løsning

Metode til at hente grafik

Jeg har en class der extender JFrame..

på den klasse skal der være en

public Component <metodenavn> som skal returner alle de Komponenter der er tilføjet på JFrame...??

jeg har prøvet med return this.getContentPane();

og det kunne jeg ikke få til at virke...

Håber nogen ved noget om dette
Avatar billede soreno Praktikant
17. oktober 2002 - 16:48 #1
en alternativ løsning er at du laver metode til at adde, altså:
..addComponent(Component c)
{
  minListeMedKomponenter.add(c);
  this.getContentPane().add...
}

og henter den liste med:
Liste getComponents()
{
  return minListeMedKomponenter;
}
Avatar billede bsp Nybegynder
17. oktober 2002 - 18:53 #2
hvad er minListeMedKomponenter...??

kan du fx uddybe program stykke lidt mere.. :0)
Avatar billede soreno Praktikant
17. oktober 2002 - 19:02 #3
i den klasse som arver fra JFrame
global variabel:
private ArrayList minListeMedKomponenter;

konstruktør:
minListeMedKomponenter = new ArrayList();
minKnap1 = new JButton("Bøøøh");
addMyComponent(minKnap1);
minLabel2 = new JLabel("Ugh!");
addMyComponent(minLabel2);


public void addMyComponent(Component c)
{
  minListeMedKomponenter.add(c);
  this.getContentPane().add(c);
}

public ArrayList getMyComponents()
{
  return minListeMedKomponenter;
}

så får du jo de komponenter du har added hvis du kalder getMyComponents();
Avatar billede bsp Nybegynder
17. oktober 2002 - 19:05 #4
jeg kigger lige på det om lidt...
Avatar billede bsp Nybegynder
17. oktober 2002 - 19:42 #5
Det jeg skal med denne metode er at jeg fra en anden klasse kalder en udskriftklasse som skal udskrive indholdet af denne frame på den første klasse...
Avatar billede bsp Nybegynder
17. oktober 2002 - 19:42 #6
så jeg tvivler på at jeg kan bruge ArrayList
Avatar billede soreno Praktikant
17. oktober 2002 - 20:19 #7
løber din udskrift klasse så alle komponenterne igennem og generere en udskrift på baggrund af komponenterne ?
Avatar billede bsp Nybegynder
17. oktober 2002 - 20:34 #8
min udskriftsklasse ser således ud..

import java.awt.*;
import java.awt.print.*;
import javax.swing.*;
import java.util.*;

public class Udskriv implements Printable {
  private Component component;

  public Udskriv( Component c ) {
    component = c;
  }

  public int print( Graphics g, PageFormat pageFormat, int pageIndex ) {
    if(pageIndex >= 1) {
      return NO_SUCH_PAGE;
    }

    Graphics2D g2 = (Graphics2D) g;
    g2.translate( pageFormat.getImageableX(), pageFormat.getImageableY() );
    boolean wasBuffered = disableDoubleBuffering( component );
    component.paint( g2 );
    restoreDoubleBuffering( component, wasBuffered );
    return PAGE_EXISTS;
  }

  private boolean disableDoubleBuffering( Component c ) {
    if( c instanceof JComponent == false ) {
      return false;
    }

    JComponent jc = (JComponent) c;
    boolean wasBuffered = jc.isDoubleBuffered();
    jc.setDoubleBuffered(false);
    return wasBuffered;
  }

  private void restoreDoubleBuffering( Component c, boolean wasBuffered ) {
    if ( c instanceof JComponent )
      ((JComponent) c).setDoubleBuffered( wasBuffered );
  }
}
Avatar billede bsp Nybegynder
20. oktober 2002 - 16:35 #9
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester