begin process at 2010 02 10 06:45:24
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Divers

 > 

Débutant(e)

 > 

Remplir Combobox sous netbeans


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Remplir Combobox sous netbeans

lundi 19 mai 2008 à 15:02:19 | Remplir Combobox sous netbeans

Bouboukick

Bonjour j'ai un code qui se connecte a mon port com et me fournit aussi tout les port disponible sur mon pc.

Le souci est que j'aimerais pouvoir mettre ma liste des ports disponible dans une combobox.

Voici mes tests effecué.

1er test : je met juste un jComboBox1.addItem(portId.getName());et j'obtient juste mon dernier port

[CODE]package blackbox;
import java.io.*;
import java.util.*;
import javax.comm.*;

public class Frame extends javax.swing.JFrame
{
    static CommPortIdentifier portId;
    static Enumeration          portList;
    InputStream              inputStream;
    SerialPort              serialPort;
    Thread              readThread;
    private List list;
   
    public Frame()
    {
        this.list = new ArrayList();
        initComponents();
        jComboBox1.addItem(portId.getName());

       
    }
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        jComboBox1 = new javax.swing.JComboBox();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, 209, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(179, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(264, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>
    public static void main(String args[])
    {
        boolean              portFound = false;
        String              defaultPort = "/dev/ttyS0";
       
        java.awt.EventQueue.invokeLater(new Runnable()
        {
            public void run()
            {
                new Frame().setVisible(true);
            }
        });
        if (args.length > 0)
        {
        defaultPort = args[0];
    }
       
    portList = CommPortIdentifier.getPortIdentifiers();

    while (portList.hasMoreElements())
        {
        portId = (CommPortIdentifier) portList.nextElement();
        if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL)
            {
        if (portId.getName().equals(defaultPort))
                {
            System.out.println("Found port: "+defaultPort);
            portFound = true;
            //Main reader = new Main();
        }
        }

    }
    if (!portFound)
        {
        System.out.println("port " + defaultPort + " not found.");
    }
    }
    // Variables declaration - do not modify
    private javax.swing.JComboBox jComboBox1;
    // End of variables declaration
    class Main implements Runnable, SerialPortEventListener
    {
  
        public Main()
    {
    try
        {
        serialPort = (SerialPort) portId.open("SimpleReadApp", 2000);
    } catch (PortInUseException e) {}

    try
        {
        inputStream = serialPort.getInputStream();
    } catch (IOException e) {}

    try
        {
        serialPort.addEventListener(this);
    }
        catch (TooManyListenersException e) {}

    serialPort.notifyOnDataAvailable(true);

    try
        {
        serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8,
                       SerialPort.STOPBITS_1,
                       SerialPort.PARITY_NONE);
    }
        catch (UnsupportedCommOperationException e) {}

    readThread = new Thread(this);

    readThread.start();
    }

    public void run()
    {
    try
        {
        Thread.sleep(20000);
    }
        catch (InterruptedException e) {}
    }

    public void serialEvent(SerialPortEvent event)
    {
    switch (event.getEventType())
        {

    case SerialPortEvent.BI:

    case SerialPortEvent.OE:

    case SerialPortEvent.FE:

    case SerialPortEvent.PE:

    case SerialPortEvent.CD:

    case SerialPortEvent.CTS:

    case SerialPortEvent.DSR:

    case SerialPortEvent.RI:

    case SerialPortEvent.OUTPUT_BUFFER_EMPTY:
        break;

    case SerialPortEvent.DATA_AVAILABLE:
        byte[] readBuffer = new byte[20];

        try
            {
        while (inputStream.available() > 0)
                {
            int numBytes = inputStream.read(readBuffer);
        }

        System.out.print(new String(readBuffer));
        }
            catch (IOException e) {}

        break;
    }
    }

    }
}[/CODE]

2eme test : je met une boucle while et la j'ai un message d'erreur suivant :
[CODE]Compiling 1 source file to NetBeansProjects/BlackBox/build/classes
Found port: /dev/ttyS0
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
        at java.util.Arrays.copyOf(Arrays.java:2760)
        at java.util.Arrays.copyOf(Arrays.java:2734)
        at java.util.Vector.ensureCapacityHelper(Vector.java:226)
        at java.util.Vector.addElement(Vector.java:573)
        at javax.swing.DefaultComboBoxModel.addElement(DefaultComboBoxModel.java:123)
        at javax.swing.JComboBox.addItem(JComboBox.java:698)
        at blackbox.Frame.<init>(Frame.java:22)
        at blackbox.Frame$1.run(Frame.java:62)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
[/CODE]

voici le code

[CODE]package blackbox;
import java.io.*;
import java.util.*;
import javax.comm.*;

public class Frame extends javax.swing.JFrame
{
    static CommPortIdentifier portId;
    static Enumeration          portList;
    InputStream              inputStream;
    SerialPort              serialPort;
    Thread              readThread;
    private List list;
   
    public Frame()
    {
        this.list = new ArrayList();
        initComponents();
        portList = CommPortIdentifier.getPortIdentifiers();
        while (portList.hasMoreElements())
        {
        jComboBox1.addItem(portId.getName());
        }
       
    }
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        jComboBox1 = new javax.swing.JComboBox();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, 209, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(179, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(264, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>
    public static void main(String args[])
    {
        boolean              portFound = false;
        String              defaultPort = "/dev/ttyS0";
       
        java.awt.EventQueue.invokeLater(new Runnable()
        {
            public void run()
            {
                new Frame().setVisible(true);
            }
        });
        if (args.length > 0)
        {
        defaultPort = args[0];
    }
       
    portList = CommPortIdentifier.getPortIdentifiers();

    while (portList.hasMoreElements())
        {
        portId = (CommPortIdentifier) portList.nextElement();
        if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL)
            {
        if (portId.getName().equals(defaultPort))
                {
            System.out.println("Found port: "+defaultPort);
            portFound = true;
        }
        }

    }
    if (!portFound)
        {
        System.out.println("port " + defaultPort + " not found.");
    }
    }
    // Variables declaration - do not modify
    private javax.swing.JComboBox jComboBox1;
    // End of variables declaration
    class Main implements Runnable, SerialPortEventListener
    {
  
        public Main()
    {
    try
        {
        serialPort = (SerialPort) portId.open("SimpleReadApp", 2000);
    } catch (PortInUseException e) {}

    try
        {
        inputStream = serialPort.getInputStream();
    } catch (IOException e) {}

    try
        {
        serialPort.addEventListener(this);
    }
        catch (TooManyListenersException e) {}

    serialPort.notifyOnDataAvailable(true);

    try
        {
        serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8,
                       SerialPort.STOPBITS_1,
                       SerialPort.PARITY_NONE);
    }
        catch (UnsupportedCommOperationException e) {}

    readThread = new Thread(this);

    readThread.start();
    }

    public void run()
    {
    try
        {
        Thread.sleep(20000);
    }
        catch (InterruptedException e) {}
    }

    public void serialEvent(SerialPortEvent event)
    {
    switch (event.getEventType())
        {

    case SerialPortEvent.BI:

    case SerialPortEvent.OE:

    case SerialPortEvent.FE:

    case SerialPortEvent.PE:

    case SerialPortEvent.CD:

    case SerialPortEvent.CTS:

    case SerialPortEvent.DSR:

    case SerialPortEvent.RI:

    case SerialPortEvent.OUTPUT_BUFFER_EMPTY:
        break;

    case SerialPortEvent.DATA_AVAILABLE:
        byte[] readBuffer = new byte[20];

        try
            {
        while (inputStream.available() > 0)
                {
            int numBytes = inputStream.read(readBuffer);
        }

        System.out.print(new String(readBuffer));
        }
            catch (IOException e) {}

        break;
    }
    }

    }
}[/CODE]


Merci pour votre aide



Bretzel : Tout est be qui finit bien!!
lundi 19 mai 2008 à 16:23:25 | Re : Remplir Combobox sous netbeans

Bouboukick

Réponse acceptée !
C'est bon j'ai trouvé mon erreur voici ce que j'ai changé et cela fonctionne du tonner de feu lol

    public Main()
    {
        initComponents();
        portList = CommPortIdentifier.getPortIdentifiers();
        while (portList.hasMoreElements())
        {
        portId = (CommPortIdentifier) portList.nextElement();
            jComboBox1.addItem(portId.getName());
        }
    }


Merci bien

Bretzel : Tout est be qui finit bien!!
mercredi 31 décembre 2008 à 18:21:55 | Re : Remplir Combobox sous netbeans

bricolomi

Bonjour
Savez-vous comment faire fonctionner sous windows avez RXTXcomm
merci

dede


Cette discussion est classée dans : java, javax, swing, serialport, serialportevent


Répondre à ce message

Sujets en rapport avec ce message

Java sous Linux mandrake 10.0 community [ par nounouX ] Bonjour a tous , voila j'ai un probleme avec l'interface graphique en Java sous linux j'ai fait un tout petit programme en java (c'est le début en fai Problème rafraichissement image avec Swing [ par ejouvin ] Bonjour.Je suis en train de faire une petite application qui contient une arborescence à gauche et une fenêtre de détail sur la droite.Dans le code su Kawa et xp [ par cissous77 ] Bonjour à tous,Je programme depuis peu en java et j'ai installé Kawa 5 sur mon pc avec le jdk 1.8.Mon problème aujourd'hui c'est qu'il ne veut pas com Problème de dessin qui s'efface [ par Reeper ] Bonjour à tous, j'apprend le java pendant mes études et j'ai un petit programme a faire qui réalise divers opérations dont une concerne la création d' Mise en forme de texte [ par garagougne ] Bonjour,je suis nouveau et ne connais pastres bien encore le fonctionnement de java.J'essaie de faire une applet pour mettre en forme dutexte (choisir Mot de passe avec interface grafique! [ par Delamour ] Vous avez dit JAVA? beh "Javatons" dont tous ensembleSlut! j ai un gros pb, o fait j ecris un prog pr simulation d automate bancaire, et depuis 5 jour PB dans main [ par thanatos67 ] Salut à toi lecteur. Oui toi! J'ai un petit soucis.J'ai déjà eu un premier soucis résolu grace à l'aide de TWINUTS (encore merci). J'ai une classe dan jTable/jCheckBox [ par Dellys ] Bonjour Je voudrai s'avoir commet afficher un jCheckBox sur un ma jTable dans une colonnes de type booléen et aussi lui attribuer un listner < Probleme de requete [ par thanatos67 ] Salut à tous.Je suis en BTS IRIS et pour mon projet je dois créer une base de donnée mysql qui va recevoir des données d'une station météorologique et


Nos sponsors


Sondage...

Comparez les prix


HTC Magic

Entre 429€ et 429€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,390 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales