Ver Mensaje Individual
  #11 (permalink)  
Antiguo 15/11/2006, 10:34
clinisbut
 
Fecha de Ingreso: diciembre-2004
Mensajes: 278
Antigüedad: 19 años, 5 meses
Puntos: 0
Bueno finalmente lo solucioné, cuadno pueda posteo el codigo

Programa.java (Archivo principal)
Código:
import javax.swing.*;
import java.awt.FlowLayout;
import java.awt.event.*;
import java.util.*;

public class Programa extends JApplet implements SerialReaderListener 
{	private ArrayList puertos;
	private com controlCom;
	private String PUERTO_SELECCIONADO;
	
	char XON=(char)17;
	char XOFF=(char)19;
	char LF=(char)10;
	char CR=(char)13;

	//GUI
	private JComboBox puertosCombo;
	private JPanel contenido;
	private JButton imprimirBtn;
	private JLabel informacionLbl;
	private JTextArea comandos;
	private JLabel respuestaLbl;
	
	//Constructor
	//Programa()
	public void init()
	{ //Creamos el panel de contenido
		contenido = new JPanel();
		contenido.setLayout(new FlowLayout());
		
		//Creamos el objeto puerto
		controlCom=new com(this);
		puertos=controlCom.listarPuertos();

		buildGUI();
	}
	
	private void buildGUI()
	{	//Añadimos un label
		JLabel caption_1Lbl = new JLabel("Selecciona el puerto:");
		contenido.add(caption_1Lbl);
		
		//Generamos y añadimos el comboBox
		buildCombo();
		imprimirBtn = new JButton("Imprimir etiqueta.");
		imprimirBtn.addActionListener(new pulsaImprimir());
		imprimirBtn.setEnabled(false);
		contenido.add(imprimirBtn);
		
		informacionLbl = new JLabel("", JLabel.RIGHT);
		contenido.add(informacionLbl);
		
		
		//Textarea para las pruebas
		comandos = new JTextArea(3, 10);
		comandos.setBorder(BorderFactory.createEmptyBorder(2,2,2,2));
		JButton comandoBtn= new JButton("Ejecutar comando.");
		comandoBtn.addActionListener(new pulsaComando());
		contenido.add(comandos);
		contenido.add(comandoBtn);
		
		respuestaLbl = new JLabel("");
		contenido.add(respuestaLbl);
		
		//Conf window
		setContentPane(contenido);
		//pack();		
		//setTitle("Impresión etiquetas");
		//setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(300,200);
		//setLocationRelativeTo(null);		//Centrar ventana
	}
	
	
	//Generamos el combo que contiene la lista de puertos serie
	private void buildCombo()
	{	puertosCombo = new JComboBox();
		int tamanyo=puertos.size();
		for(int i=0; i < tamanyo; i++)
		{	puertosCombo.addItem( (String) puertos.get(i) );
		}		
		puertosCombo.setSelectedIndex(-1);
		puertosCombo.addActionListener(new itemStateChange());
		contenido.add(puertosCombo);
	}
	
	
	//Inner class para el listener del JComboBox
	class itemStateChange implements ActionListener
	{	Object comodin;
		public void actionPerformed(ActionEvent e)
		{	PUERTO_SELECCIONADO=(String)puertosCombo.getSelectedItem();
			System.out.println( PUERTO_SELECCIONADO );
			controlCom.cerrarPuerto();
			comodin=controlCom.abrirPuerto(PUERTO_SELECCIONADO);
			String cadena=LF+
			"jF"+LF+
			"US"+LF+
			"eR,2,Q"+LF+
			"Q801,32"+LF+
			"q801"+LF+
			"S2"+LF+
			"D8"+LF+
			"ZB"+LF;
			controlCom.send(cadena);
		
			if(!comodin.equals("1"))
			{	JOptionPane.showMessageDialog(null,"Error:\n"+(String)comodin);
				puertosCombo.setSelectedIndex(-1);
			}
			
		}
	}	
	
	//Imprimir etiqueta
	class pulsaImprimir implements ActionListener
	{	
		public void actionPerformed(ActionEvent e)
		{	imprimirBtn.setEnabled(false);
			String cadena=LF+
			"N"+LF+
			"X0,0,4,60,100"+LF+
			"LO0,50,50,4"+LF+
			"LO40,100,4,100"+LF+
			"A40,100,1,1,1,1,N,\"MADE IN YEAH\""+LF+
			"B50,60,0,1,2,3,96,B,\"S 000001\""+LF+
			"P1"+LF;
		
			controlCom.send(cadena);
			informacionLbl.setText("Imprimiendo...");
		}
	}
	
	class pulsaComando implements ActionListener
	{	char XON=(char)17;
		char XOFF=(char)19;
		char LF=(char)10;
		char CR=(char)13;
		public void actionPerformed(ActionEvent e)
		{	String valor=LF+comandos.getText()+LF;
			controlCom.send(valor);
		}
	}
	
	public static void main(String[] args)
	{	Programa app= new Programa();
		app.setVisible(true);
	}
	
	//Acciones a realizar al llegar datos
	public void newData(byte[] data)
	{	String mensaje=new String(data).trim();
		respuestaLbl.setText(mensaje);	
		[.....]
	}
}

Última edición por clinisbut; 16/11/2006 a las 01:53