Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Remplir Combobox sous netbeans [ Divers / Débutant(e) ] (Bouboukick)

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!!



Cette discussion est classé 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...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,312 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.