usar variavel de outro metodo

Java

12/10/2012

bom dia pessoal. como faço pra usar essa variavel g2 do metodo paint no comando do meu botao?

public class Reta extends JFrame{
	JButton b1 = new JButton("  Ok  ");

	public void paint(Graphics g) { 
		Graphics2D g2 = (Graphics2D) g;
		g2.setStroke(new BasicStroke(15));
		g2.setColor(Color.blue);        
		//loop para criação dos pontos
		for (int y = 200; y < 650; y=y+100) {
			for (int x = 150; x < 650; x=x+100) {
				g2.drawLine(x, y, x, y);   
			}       
		}     
	}

	public Reta() {
		super("ponto e reta");
		setSize(650, 700);
		setLayout(new GridBagLayout());
		((JComponent)getContentPane()).setBorder(new EmptyBorder(1, 1, 1, 1));
		GridBagConstraints gbc = new GridBagConstraints(); 
		gbc.insets = new Insets(1, 1, 1, 1);
		gbc.gridx = 5; 
		gbc.gridwidth = 1;   
		gbc.anchor = GridBagConstraints.CENTER;  
		gbc.gridy = 0; 
		add(b1, gbc);
		
		//comando do botao
		b1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				int xt1,yt1,xt2,yt2;
				
            /*usar variavel g2 aqui */
				
			}
		}); 	
   
	}
		
	public static void main(String[] args) {
		Reta janela = new Reta(); 
		janela.setVisible(true); 
	}
}


desde já agradeço.
Valdenir Matos

Valdenir Matos

Curtidas 0

Respostas

Joel Rodrigues

Joel Rodrigues

12/10/2012

Declare a variável como global, fora do método onde ela se encontra agora.
GOSTEI 0
Valdenir Matos

Valdenir Matos

12/10/2012

olá, a dica funcionou mais nao resolveu o problema.
o que eu estou querendo fazer é criar uma grande de pontos(5 linhas x 5 colunas com distancia entre pontos de 100) e ligar estes pontos com retas (g3.drawLine(150,200,150,300);) atraves do botao.
aparentemente está tudo certo, compila normal sem erro, mas quando clico no botao nao aparece linha nenhuma. segue abaixo o codigo com a correção. Se alguem tiver alguma ideia eu agradeço.

   public class Reta extends JFrame{    
       JButton b1 = new JButton("  Ok  ");    
       Graphics2D g3;
 
	public void paint(Graphics g) {    	
		Graphics2D g2 = (Graphics2D) g;
		Graphics2D g4 = (Graphics2D) g;
		g2.setStroke(new BasicStroke(15));
		g2.setColor(Color.blue);   		
		//loop para criação dos pontos
		for (int y = 200; y < 650; y=y+100) {
			for (int x = 150; x < 650; x=x+100) {
				g2.drawLine(x, y, x, y); 
			}       
		}  
		g4.setStroke(new BasicStroke(5));
		g4.setColor(Color.red);  
		this.g3 = g4;				
	}   
        
       public Reta() {    
          super("ponto e reta");    
          setSize(650, 700);    
          setLayout(new GridBagLayout());    
          ((JComponent)getContentPane()).setBorder(new EmptyBorder(1, 1, 1, 1));    
          GridBagConstraints gbc = new GridBagConstraints();       
          gbc.anchor = GridBagConstraints.CENTER;      
          gbc.gridy = 0;     
          add(b1, gbc);    
              
          //comando do botao    
          b1.addActionListener(new ActionListener() {    
             public void actionPerformed(ActionEvent e) {    
                int xt1,yt1,xt2,yt2;    
                    
                g3.drawLine(150,200,150,300);	
	        g3.drawLine(150,200,250,200);                      
             }    
          });               
       }                 
       public static void main(String[] args) {    
          Reta janela = new Reta();     
          janela.setVisible(true);     
       }    
    } 
GOSTEI 0
POSTAR