Não é possivel alterar componentes durante a execução???
Por exemplo eu tenho um JEditorPane… setando o background dele na hora de execução vai certo… mas alterar durante a execução não conseguir!!!
É possivel??? Qual seria a solução???
Obrigado desde já!!!
É possível sim.
Caso queira modificar a cor de fundo de um JEditorPane ao clicar em um botão, é só colocar a instrução desejada no método da classe Listener…
Ex:
class MudarCorListener implements ActionListener
{
@Override
public void actionPerformed(ActionEvent e) {
editorPane.setBackground(Color.BLUE);
}
}
Eu fiz quase nesse estilo praticamente… se eu setar na hora que a janela abrir tudo bem… mas durante a execução não consigo isso =/
Ja testei aqui e funcionou normalmente… posso trocar de cor a hora que eu quiser e quantas vezes quiser em tempo de execução.
.
Posta o seu código.
No seu caso pode estar faltando alguma coisa é só dar uma olhada.
package com.cube.forms;
import java.awt.Color;
public class MainFrame extends javax.swing.JFrame {
public MainFrame() {
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jMenuBar1 = new javax.swing.JMenuBar();
jMenu1 = new javax.swing.JMenu();
jMenu2 = new javax.swing.JMenu();
jScrollPane1 = new javax.swing.JScrollPane();
jEditorPane1 = new javax.swing.JEditorPane();
jMenuBar2 = new javax.swing.JMenuBar();
jMenu3 = new javax.swing.JMenu();
jMenu4 = new javax.swing.JMenu();
jMenu1.setText("File");
jMenuBar1.add(jMenu1);
jMenu2.setText("Edit");
jMenuBar1.add(jMenu2);
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jScrollPane1.setViewportView(jEditorPane1);
jMenu3.setText("File");
jMenu3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenu3ActionPerformed(evt);
}
});
jMenuBar2.add(jMenu3);
jMenu4.setText("Edit");
jMenuBar2.add(jMenu4);
setJMenuBar(jMenuBar2);
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(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 380, Short.MAX_VALUE)
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 257, Short.MAX_VALUE)
.addContainerGap())
);
pack();
}// </editor-fold>
private void jMenu3ActionPerformed(java.awt.event.ActionEvent evt) {
jEditorPane1.setOpaque(true);
jEditorPane1.setBackground(Color.GRAY);
}
// Variables declaration - do not modify
private javax.swing.JEditorPane jEditorPane1;
private javax.swing.JMenu jMenu1;
private javax.swing.JMenu jMenu2;
private javax.swing.JMenu jMenu3;
private javax.swing.JMenu jMenu4;
private javax.swing.JMenuBar jMenuBar1;
private javax.swing.JMenuBar jMenuBar2;
private javax.swing.JScrollPane jScrollPane1;
// End of variables declaration
}
Esse seria o código gerado pelo netBeans!!!
Jah setei pra alterar e nada =x
E ae… algum erro a vista???
Sim…
[quote] [code]private void jMenu3ActionPerformed(java.awt.event.ActionEvent evt) {
jEditorPane1.setOpaque(true);
jEditorPane1.setBackground(Color.GRAY);
}
.
.
.
jMenu3.addActionListener(new java.awt.event.ActionListener() {//Perceba que você esta adicionando o Listener a um componente de Menu.
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenu3ActionPerformed(evt);
}
});
.
.
.
private javax.swing.JMenu jMenu3;//Esse componente é um menu [/code][/quote]
O erro é simples… um menu serve apenas para conter itens a serem escolhidos e não disparar eventos… sendo assim não acontece nada ao clicar no menu File.
O certo seria adicionar um JMenuItem(“Mudar cor de fundo”) ao JMenu(“File”)… pois o JMenuItem é o componente que dispara o evento ao clicar do mause…
Ex:
[code] JMenu3.add(JMenuItem1);//Adicionando item ao menu… dependendo de como for pode-se adicionar varios itens… item salvar, abrir, fechar…
.
.
.
private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
jEditorPane1.setOpaque(true);
jEditorPane1.setBackground(Color.GRAY);
}
.
.
.
jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem1ActionPerformed(evt);
}
});
.
.
.
private javax.swing.JMenuItem jMenuItem1;[/code]
Nunca usei o netBeans para gerar os códigos… então não tenho bem certeza de como se faz para adicionar os itens ao menus… acredito que seja apenas arrastar para dentro do menu desejado…
O código a cima é só um exemplo, tentei fazer semelhante como o código gerado pelo netbeans, que na minha opinião é muito bagunçado e confuso…
Desse modo com certeza ira funcionar…
vlw… jah consegui resolver com seu exemplo!!
Obrigado!