Gostaria de saber como criar aplicações MDI em Java. Estou começando em e Java e uso a API Swing para criar minhas aplicações. Mas uma coisa ouso falar em AWT, SWING e SWT, qual dessas APIs é a melhor ou a mais utilizada?
Dê uma olhada em javax.swing.JInternalFrame.
AWT está morta e enterrada, Swing eh bom e SWT é do cacete
Procurando aqui no fórum vc consegue descrições bem melhores do que essa minha sonolenta resposta
Eu tentei usá-la, mas, não consegui. Ao executar o programa no JBuilder não apareceu nada.
Um trecho do meu código para vc dar uma olhada
import java.awt.;
import java.awt.event.;
import javax.swing.*;
public class Teste extends JIternalFrame
{
Teste()
{ … }
public static void main( String args[] )
{ JInternalFrame a=new Teste();
a.show();
}
}
Poderia me dar um exemplo para eu entender melhor ?
Desde já muito obrigado
Segue um exemplo básico.
[code]import java.awt.;
import java.awt.event.;
import javax.swing.;
import java.util.;
import java.text.*;
public class MenuFrame extends JFrame implements ActionListener, MouseListener, MouseMotionListener {
JMenu menu;
JMenuItem exemp = new JMenuItem("JInternalFrame");
JPopupMenu popup = new JPopupMenu();
String[] nomePopup = {"JInternalFrame","Sair"};
JMenuItem[] menuPopup = new JMenuItem[2];
Color color = new Color(200,200,200);//Color(29,140,194);
JButton botaoSair = new JButton("A");
static JButton botaoBackup = new JButton("B");
static JButton botaoNovo = new JButton("C");
Container c;
static JMenuBar menuBar;
JDesktopPane desktop = new JDesktopPane();
static final Integer DOCLAYER = new Integer(5);
static final Integer TOOLLAYER = new Integer(6);
static final Integer HELPLAYER = new Integer(7);
public MenuFrame() {
super("JInternalFrame");
final int inset = 60;
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
setBounds ( inset, inset, screenSize.width - inset*2, screenSize.height - inset*2 );
buildContent();
buildMenus();
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
quit();
}
});
System.out.println("Iniciando Menu Principal");
show();
}
protected void buildMenus() {
menuBar = new JMenuBar();
menuBar.setOpaque(true);
menu = buildFileMenu();
menuBar.add(menu);
setJMenuBar(menuBar);
builPopup();
}
public void builPopup() {
for(int i=0; i<2; i++) {
menuPopup[i] = new JMenuItem(nomePopup[i]);
if(i == 1)
popup.addSeparator();
popup.add(menuPopup[i]);
menuPopup[i].addActionListener(this);
}
}
protected JMenu buildFileMenu() {
menu = new JMenu("Exemplo");
menu.addActionListener(this);
menu.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
exemp.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
openWindow();
}
});
menu.add(exemp);
return menu;
}
protected void buildContent() {
desktop.addMouseListener(this);
desktop.addMouseMotionListener(this);
getContentPane().add(desktop);
desktop.setBackground(color);
}
public void quit() {
int result = JOptionPane.showConfirmDialog(null,"Deseja realmente Sair?", "Saindo", JOptionPane.WARNING_MESSAGE);
if (result == JOptionPane.YES_OPTION) {
System.out.println("Fechando Menu Principal");
System.exit(0);
}
}
public void openWindow() {
JInternalFrame internal1 = new sobre();
desktop.add(internal1, HELPLAYER);
try {
internal1.setVisible(true);
internal1.setSelected(true);
} catch (java.beans.PropertyVetoException e2) {}
}
public void actionPerformed(ActionEvent e) {
if(e.getSource() == menuPopup[0])
openWindow();
if(e.getSource() == menuPopup[1])
quit();
if(e.getSource() == botaoSair)
quit();
}
public void mouseClicked(MouseEvent e) {
}
private void checkForTriggerEvent(MouseEvent e) {
if(e.isPopupTrigger())
popup.show(e.getComponent(), e.getX(), e.getY());
}
public void mouseReleased(MouseEvent e) {
if(e.getSource() == desktop) {
checkForTriggerEvent(e);
}
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
if(e.getSource() == desktop) {
checkForTriggerEvent(e);
}
}
public void mouseDragged(MouseEvent e) {
}
public void mouseMoved(MouseEvent e) {
}
public static void main(String[] args) {
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel" );
} catch (Exception e) {
System.out.println("Teste");
}
new MenuFrame();
}
}[/code]
Fonte: Adaptação do livro Java Como Programar 4° Ed.
[]'s
Senhores. boa noite.
Estou procurando uma forma de configurar os itens disponiveis na pleta do swing para desenvolver uma aplicação MDI. Até o momento encontro documentação tratando de códigos e implementação de classes, mas gostaria que alguém explicasse isto na forma mais produtiva que o netbeans disponibiliza, o arrastar e soltar os componentes.
Tem até um exemplo pronto de implementação do formulário MDI no netbeans, mas ele não implenta nenhum menu interno, ou seja ficamos sem saber como configurar .
Solicito ajuda.
E fico no aguardo.
Anderson.
PS ja baixei até o openSwing mas não posso perder tempo agora para aprender a utiliza-lo. O TCC tem tempo para entrega.
Grato.
O JInternalFrame tem que ficar dentro de um JDesktopPane.
E o JDesktopPane tem que ficar dentro de JFrame.