Fórum usar variavel de outro metodo #426060
12/10/2012
0
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
Curtir tópico
+ 0
Responder
Posts
12/10/2012
Joel Rodrigues
Declare a variável como global, fora do método onde ela se encontra agora.
Responder
Gostei + 0
12/10/2012
Valdenir Matos
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);
}
}
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)