Como capturar o conteudo da Combobox

3 respostas
gilcwb

Boa Tarde!
Antes de tudo, peço paciência… pois sou iniciante
Já postei sobre isso, consegui resolver em partes somente, tentei exemplos de outros posts daqui do forum mas não consegui resolver.

Tenho uma Classe Form1 com uma JCombo que carrega uma lista de Portas Com
Na outra Classe Imprimir eu tento capturar o conteúdo desta JCombo para indicar em qual porta imprimir ( Porta Selecionada) na JCombo.

Já ouvi muitas coisas mas nada deu certo . Vou postar partre do código se for necessário coloco todo.

public class Form1 extends javax.swing.JFrame {
 Imprimir imprimir;
 JComboBox JComboPorta;
/**
 * Creates new form Form1
 */
public Form1() {
    initComponents();
}

public JComboBox getJComboPorta() {
    return JComboPorta;
}

Aqui estancia o objeto com o conteudo das portas certo ?
Tem a necessidade de instanciar na outra classe novamente?

private void initComponents() {

    jButton1 = new javax.swing.JButton();
    **jComboPorta = new javax.swing.JComboBox<>();**
    jLabel1 = new javax.swing.JLabel();

jComboPorta.setModel(new DefaultComboBoxModel(SerialPortList.getPortNames()));

Na Classe de impressao

public class Imprimir {

private String sPorta;
public void imprimir_cheque() throws InterruptedException
{
         SerialPort serialPort;
         Form1 form1;
 try
    {
        form1=new Form1();
/// aqui tem a necessidad e instanciar novamente o objeto?  não foi no Form1?

/// a variavel sPorta retorna como Null

sPorta= form1.jComboPorta.getSelectedItem().toString();

JOptionPane.showMessageDialog(null, "Porta " + sPorta);
serialPort = new SerialPort ("COM3");
        //serialPort = new SerialPort (sPorta);

3 Respostas

darlan_machado

Cara, a primeira coisa é tentar descobrir por que não deu certo. E isso só funciona se você nos disser qual o erro e/ou comportamento que foi gerado.
Sem esse detalhe, fica impossível falar qualquer coisa.
Além do que, não é por que tentamos de um jeito A e não rolou que vamos abandonar tudo e tentar um jeito B, C, etc.
Precisamos persistir naquele jeito, até termos certeza que fizemos o possível.

gilcwb

a primeira coisa é capturar a porta escolhida pelo usuario para utilizar

serialPort = new SerialPort (sPorta);
erro de hoje na execução do programa. ( compila normal)
A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000006ec4b5bb, pid=11524, tid=6104
#
# JRE version: OpenJDK Runtime Environment (12.0.2+10) (build 12.0.2+10)
# Java VM: OpenJDK 64-Bit Server VM (12.0.2+10, mixed mode, sharing, tiered, compressed oops, g1 gc, windows-amd64)
# Problematic frame:
# C  [jSSC-2.7_x86_64.dll+0xb5bb]
#
# No core dump will be written. Minidumps are not enabled by default on client versions of Windows
#
# An error report file with more information is saved as:
# C:\Users\User\Documents\NetBeansProjects\DataCheck\hs_err_pid11524.log
#
# If you would like to submit a bug report, please visit:
#   https://github.com/AdoptOpenJDK/openjdk-build/issues
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
C:\Users\User\AppData\Local\NetBeans\Cache\11.0\executor-snippets\run.xml:111: The following error occurred while executing this line:
C:\Users\User\AppData\Local\NetBeans\Cache\11.0\executor-snippets\run.xml:68: Java returned: 1
BUILD FAILED (total time: 7 seconds)
gilcwb

No c# simplesmente coloco

Minhas_Config.Default.Nome_Porta = comboBox1.Text;

Criado 10 de outubro de 2019
Ultima resposta 10 de out. de 2019
Respostas 3
Participantes 2