Ajuda com a intercalação de programas

0 respostas
jframejava
K

Galera, fiz 2 programas em arquivos diferentes.
O “MenuComFrame” é um teste que eu tava fazendo com o JMenu que o unico botão que funciona é o item “Desenho livre”.
O “DesenhoLivre” um JFrame que desenha de acordo com a posição do mouse.
Queria integrar esse “DesenhoLivre” no resto do frame que sobrou do “MenuComFrame”, porém n tenho conhecimento de como fazer isso, já tentei de diversas formas e não consigo.

MenuComFrame

import javax.swing.<em>;

import java.awt.</em>;

import java.awt.event.*;
public class MenuComFrame extends JFrame{

//Instancia a barra de menu e os itens

JMenuBar barra = new JMenuBar();

JFrame areadesenho = new JFrame();
JMenu menuArquivo = new JMenu(Arquivo);

JMenuItem novo = new JMenuItem(Novo);

JMenuItem abrir = new JMenuItem(Abrir);

JMenuItem fechar = new JMenuItem(Fechar);
JMenu menuFerramentas = new JMenu(Ferramentas);

JMenuItem linha = new JMenuItem(Linha reta);

JMenuItem quadrado = new JMenuItem(Quadrado);

JMenuItem triangulo = new JMenuItem(Triângulo Retângulo);

JMenuItem livre = new JMenuItem(Desenho Livre);

JMenuItem freeman = new JMenuItem(Desenhar por Freeman Chain);

JMenu menuSobre = new JMenu(“Sobre”);

JMenu menuSair = new JMenu(“Sair”);
JMenuItem exit = new JMenuItem(“Exit”);

public MenuComFrame(){

//coloca a barra de menu e os itens

setJMenuBar(barra);

areadesenho.setTitle("");

areadesenho.setSize(500,500);

areadesenho.setVisible(false);

areadesenho.setLocationRelativeTo(null);
barra.add(menuArquivo);
     menuArquivo.add(novo);
     menuArquivo.add(abrir);      
     menuArquivo.add(fechar);
        
  barra.add(menuFerramentas);
     menuFerramentas.add(linha);
     menuFerramentas.add(quadrado);
     menuFerramentas.add(triangulo);
     menuFerramentas.add(livre);
     menuFerramentas.add(freeman);
  
  barra.add(menuSobre);
     //menuSobre.add();            

  barra.add(menuSair);
     menuSair.add(exit);
  
  
  //dando ação aos itens
  fechar.addActionListener(new ActionListener(){
     public void actionPerformed(ActionEvent e){
        setVisible(false);
        new MenuInicial();
     }
  });
            
  exit.addActionListener(new ActionListener(){
     public void actionPerformed(ActionEvent e){
        System.exit(0);
     }
  });

  livre.addActionListener(new ActionListener(){
     public void actionPerformed(ActionEvent e){
        new DesenhoLivre();         
     }
  });      
        
  setTitle("MiniCad");
  setExtendedState(MAXIMIZED_BOTH);
  setLocationRelativeTo(null);
  setDefaultCloseOperation(EXIT_ON_CLOSE);
  setVisible(true);

}

public static void main(String[] args){

new MenuComFrame();

}

}

==========================================================================
DesenhoLivre

import javax.swing.JFrame;

import java.util.ArrayList;

import java.awt.Point;

import java.awt.Graphics;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

public class DesenhoLivre extends JFrame{

boolean pressionado = false;

public DesenhoLivre(){

//“escuta” o que o mouse faz enquanto executa o programa em sí

addMouseListener(new MouseListener(){

public void mouseReleased(MouseEvent e){

pressionado = false;

}

public void mousePressed(MouseEvent e){

pressionado = true;

listadecoord.clear();

}

public void mouseExited(MouseEvent e){

}

public void mouseEntered(MouseEvent e){

}

public void mouseClicked(MouseEvent e){

}

});

//instancia o objeto time

new Time().start();

//seta a configuração inicial do frame

setExtendedState(MAXIMIZED_BOTH);

setLocationRelativeTo(null);

setDefaultCloseOperation(EXIT_ON_CLOSE);

setVisible(true);

}

//Lista de coordenadas gravadas para execução do desenho livre

ArrayList listadecoord = new ArrayList<>();
public class Desenho{

int x, y;

public Desenho(int x, int y){

this.y = y;

this.x = x;

}

}

//desenha uma linha da coordenada x,y para a coordenada x2,y2

public void paint(Graphics g){

for(int i=1; i<listadecoord.size();i++){

int x = listadecoord.get(i).x;

int y = listadecoord.get(i).y;

int x2 = listadecoord.get(i-1).x;

int y2 = listadecoord.get(i-1).y;

g.drawLine(x2,y2,x,y);
}
}

//principal ======================================

public static void main(String[]args)

{

new DesenhoLivre();

}
Criado 30 de outubro de 2019
Respostas 0
Participantes 1