Como chamar a caixa de dialogo de impressão do windows?

Galera bom dia a todos!

Bom estou com o seguinte método que lista as impressoras disponiveis na máquina, porém eu nao consigo selecionar qual eu quero imprimir pois elas vem em forma de Strings.

[code]PrintService [] services = PrintServiceLookup.lookupPrintServices(null, null);

for(PrintService impressoras : services) {
      jTextAreaImpressoras.append(impressoras.getName() +"\n");
    
}[/code]

Mas minha pergunta é como chamar mesmo a Caixa de dialogo de impressão do windows?

Do windows nao sei hehe mas sei que java tem uma padrao…

[code]public class Teste {

public static void main(String[] arg) {
	PrinterJob pjob = PrinterJob.getPrinterJob();
	PageFormat pf = pjob.defaultPage();

	try {
		if (pjob.printDialog()) {
			pjob.print();
		}
	} catch (PrinterException e) {
		System.err.println("Erro: " + e.getMessage());
	}
}

}[/code]

ok?
http://www.exampledepot.com/egs/java.awt.print/PrintDialog.html

Esse e melhor…
http://www.apl.jhu.edu/~hall/java/Swing-Tutorial/Swing-Tutorial-Printing.html

tipo sei que pedir d mais…mas teria como alguem me da um auxilio no codigo pq nao quero so copiar e colar o codigo, obrigado.

Galera como eu faço pra setar a impressora que e aberta no jDialog de impressão do java?

tenho o seguinte codigo de impressão:

[code]String texto = jTextArea.getText();

  String impressora = "//10.0.16.5/Aficio_3035";


   byte[] bytes = texto.getBytes();

   try {

       FileOutputStream porta = new FileOutputStream(impressora); // aqui está a impressora passada, onde eu quero colocar a impressão selecionada no jDialog
        try {
            porta.write(bytes);
            porta.close();
            JOptionPane.showMessageDialog(null,"Arquivo impresso.: \n" +"Impressora: Aficio_3035");
        }catch (IOException ex) {
           Logger.getLogger(FramePrincipal.class.getName()).log(Level.SEVERE, null, ex);
       }
    } catch (FileNotFoundException ex) {
        Logger.getLogger(FramePrincipal.class.getName()).log(Level.SEVERE, null, ex);
   }[/code]

Aqui está o jDialog de impressão:

[code]public class Print {

public void caixaImpressao(){

PrinterJob pjob = PrinterJob.getPrinterJob();
        try {
            if (pjob.printDialog()) {
                pjob.print();

            }
        } catch (PrinterException e) {
            System.err.println("Erro: " + e.getMessage());
        }
    }

}[/code]