E ai gente, tava fazendo um chatzinho, e queria que antes de iniciar o programa aparecesse um inputdialog para o usuario escrever seu nick, para ai posteriormente eu pegar o nick que o usuario digito e concatenar antes de suas mensagens e tals, alguem me ajuda a fazer essa alteração simples no codigo ?? (deixei um comentario para localizarem )
publicclassChat{privateJFrameframe;privatefinalJTextPanetextPane=newJTextPane();privatefinalJTextFieldtextField=newJTextField();privatefinalJScrollPanescrollPane=newJScrollPane();EntradaChatapelido=newEntradaChat();publicstaticvoidmain(String[]args){//SHOWINPUTDIALOG AQUI, GRAVANDO O APELIDO DIGITADO EM UMA VARIAVEL APELIDOEventQueue.invokeLater(newRunnable(){publicvoidrun(){try{Chatwindow=newChat();window.frame.setVisible(true);}catch(Exceptione){e.printStackTrace();}}});}publicChat(){initialize();}privatevoidinitialize(){frame=newJFrame();frame.getContentPane().setBackground(SystemColor.inactiveCaptionText);frame.setBounds(100,100,494,365);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.getContentPane().setLayout(null);scrollPane.setBounds(10,31,458,246);frame.getContentPane().add(scrollPane);scrollPane.setViewportView(textPane);textPane.setBackground(SystemColor.inactiveCaption);textPane.setEditable(false);textField.setBounds(10,288,321,28);frame.getContentPane().add(textField);textField.setColumns(10);textField.addActionListener(newInsereTexto());JButtonbtnEnviar=newJButton("Enviar");btnEnviar.setBackground(SystemColor.inactiveCaptionText);btnEnviar.addActionListener(newInsereTexto());btnEnviar.setBounds(348,287,110,30);frame.getContentPane().add(btnEnviar);}classInsereTextoimplementsActionListener{//A CONCATENAÇÃO SERA FEITA ABAIXOpublicvoidactionPerformed(ActionEventarg0){textPane.setText(textPane.getText()+"\n"+apelido+textField.getText());textField.setText("");}}}
privateJFrameframe;privatefinalJTextPanetextPane=newJTextPane();privatefinalJTextFieldtextField=newJTextField();privatefinalJScrollPanescrollPane=newJScrollPane();staticStringapelido="";publicstaticvoidmain(String[]args){//SHOWINPUTDIALOG AQUI, GRAVANDO O APELIDO DIGITADO EM UMA VARIAVEL APELIDO apelido=JOptionPane.showInputDialog(null,"Digite o Nick","Login",JOptionPane.QUESTION_MESSAGE);EventQueue.invokeLater(newRunnable(){publicvoidrun(){try{Combowindow=newCombo();window.frame.setVisible(true);}catch(Exceptione){e.printStackTrace();}}});}publicCombo(){initialize();}privatevoidinitialize(){frame=newJFrame();frame.getContentPane().setBackground(SystemColor.inactiveCaptionText);frame.setBounds(100,100,494,365);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.getContentPane().setLayout(null);scrollPane.setBounds(10,31,458,246);frame.getContentPane().add(scrollPane);scrollPane.setViewportView(textPane);textPane.setBackground(SystemColor.inactiveCaption);textPane.setEditable(false);textField.setBounds(10,288,321,28);frame.getContentPane().add(textField);textField.setColumns(10);textField.addActionListener(newInsereTexto());JButtonbtnEnviar=newJButton("Enviar");btnEnviar.setBackground(SystemColor.inactiveCaptionText);btnEnviar.addActionListener(newInsereTexto());btnEnviar.setBounds(348,287,110,30);frame.getContentPane().add(btnEnviar);}classInsereTextoimplementsActionListener{//A CONCATENAÇÃO SERA FEITA ABAIXO publicvoidactionPerformed(ActionEventarg0){textPane.setText(textPane.getText()+"\n"+apelido+textField.getText());textField.setText("");}}
Espero ter te ajudado, mas quando eu rodei o seu codigo, o apelido está ficando concatenado com o que foi digitado, você poderia deixar assim:
privateJFrameframe;privatefinalJTextPanetextPane=newJTextPane();privatefinalJTextFieldtextField=newJTextField();privatefinalJScrollPanescrollPane=newJScrollPane();staticStringapelido="";publicstaticvoidmain(String[]args){//SHOWINPUTDIALOG AQUI, GRAVANDO O APELIDO DIGITADO EM UMA VARIAVEL APELIDO apelido=JOptionPane.showInputDialog(null,"Digite o Nick","Login",JOptionPane.QUESTION_MESSAGE);EventQueue.invokeLater(newRunnable(){publicvoidrun(){try{Combowindow=newCombo();window.frame.setVisible(true);}catch(Exceptione){e.printStackTrace();}}});}publicCombo(){initialize();}privatevoidinitialize(){frame=newJFrame();frame.getContentPane().setBackground(SystemColor.inactiveCaptionText);frame.setBounds(100,100,494,365);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.getContentPane().setLayout(null);scrollPane.setBounds(10,31,458,246);frame.getContentPane().add(scrollPane);scrollPane.setViewportView(textPane);textPane.setBackground(SystemColor.inactiveCaption);textPane.setEditable(false);textField.setBounds(10,288,321,28);frame.getContentPane().add(textField);textField.setColumns(10);textField.addActionListener(newInsereTexto());JButtonbtnEnviar=newJButton("Enviar");btnEnviar.setBackground(SystemColor.inactiveCaptionText);btnEnviar.addActionListener(newInsereTexto());btnEnviar.setBounds(348,287,110,30);frame.getContentPane().add(btnEnviar);}classInsereTextoimplementsActionListener{//A CONCATENAÇÃO SERA FEITA ABAIXO publicvoidactionPerformed(ActionEventarg0){textPane.setText(textPane.getText()+"\n"+apelido+textField.getText());textField.setText("");}}
Espero ter te ajudado, mas quando eu rodei o seu codigo, o apelido está ficando concatenado com o que foi digitado, você poderia deixar assim:
Aproveitando o espaço, eu tb to desenvolvendo uma aplicação parecida mas no meu caso eu queria botar uma cor na variavel apelido
como eu faço isso ??
Victor_Leandro
Gabe Develop,
Qual o componente do apelido?
Se for um JTextField, faz o seguinte:
textfield.setForeground(Color.CYAN);
O exemplo acima altera a cor para CYAN.
Na maioria dos componentes o metódo para alterar a cor da fonte é o mesmo setForeground. Este também funciona com JLabel…
G
GabeDevelop
Victor_Leandro:
Gabe Develop,
Qual o componente do apelido?
Se for um JTextField, faz o seguinte:
textfield.setForeground(Color.CYAN);
O exemplo acima altera a cor para CYAN.
Na maioria dos componentes o metódo para alterar a cor da fonte é o mesmo setForeground. Este também funciona com JLabel…
staticStringapelido="";apelido=JOptionPane.showInputDialog(null,"Digite o Nick","Login",JOptionPane.QUESTION_MESSAGE);.....classInsereTextoimplementsActionListener{//A CONCATENAÇÃO SERA FEITA ABAIXO publicvoidactionPerformed(ActionEventarg0){textPane.setText(textPane.getText()+"\n"+apelido+textField.getText());textField.setText("");}}
Eu segui a idéia de apelido por esse tópico, não sei se é a melhor pratica mas fiz o mesmo esquema do código ali em cima, que pega o valor do InputDialog e armaneza em uma variavel String pra concatenar depois
neste caso, vc sabe como eu faço para mudar a cor apenas da variavel apelido ???
valeu
AndreSorge
GabeDevelop, boa noite…
fiz uma gabizinha, mas nao sei se funciona…fiz de cabeca…testa ai e avisa se funfa…
privateJFrameframe;privatefinalJTextPanetextPane=newJTextPane();privatefinalJTextFieldtextField=newJTextField();privatefinalJScrollPanescrollPane=newJScrollPane();staticJTextFieldapelido=newJTextField();publicstaticvoidmain(String[]args){//SHOWINPUTDIALOG AQUI, GRAVANDO O APELIDO DIGITADO EM UMA VARIAVEL APELIDO apelido.setText(JOptionPane.showInputDialog(null,"Digite o Nick","Login",JOptionPane.QUESTION_MESSAGE));apelido.setForeground(Color.RED);EventQueue.invokeLater(newRunnable(){publicvoidrun(){try{Combowindow=newCombo();window.frame.setVisible(true);}catch(Exceptione){e.printStackTrace();}}});}publicCombo(){initialize();}privatevoidinitialize(){frame=newJFrame();frame.getContentPane().setBackground(SystemColor.inactiveCaptionText);frame.setBounds(100,100,494,365);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.getContentPane().setLayout(null);scrollPane.setBounds(10,31,458,246);frame.getContentPane().add(scrollPane);scrollPane.setViewportView(textPane);textPane.setBackground(SystemColor.inactiveCaption);textPane.setEditable(false);textField.setBounds(10,288,321,28);frame.getContentPane().add(textField);textField.setColumns(10);textField.addActionListener(newInsereTexto());JButtonbtnEnviar=newJButton("Enviar");btnEnviar.setBackground(SystemColor.inactiveCaptionText);btnEnviar.addActionListener(newInsereTexto());btnEnviar.setBounds(348,287,110,30);frame.getContentPane().add(btnEnviar);}classInsereTextoimplementsActionListener{//A CONCATENAÇÃO SERA FEITA ABAIXO publicvoidactionPerformed(ActionEventarg0){textPane.setText(textPane.getText()+"\n"+apelido.getText()+" Diz: "+"\n"+textField.getText());textField.setText("");}}