usar variavel de outro metodo
bom dia pessoal. como faço pra usar essa variavel g2 do metodo paint no comando do meu botao?
desde já agradeço.
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
Curtidas 0
Respostas
Joel Rodrigues
12/10/2012
Declare a variável como global, fora do método onde ela se encontra agora.
GOSTEI 0
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.
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