Olá a todos…
Tou com problemas na minha aplicação no que as InternalFrames diz respeito…o que eu pretendo e que a InternalFrame apareça por cima das outras componentes da aplicação…será que podiam dar uma vista de olhos ao código em baixo e a ver se alguém me pode ajudar?!..
O codigo apenas cria as componentes basicas da minha aplicação e kuando eu clico no Botao EDIT deveria aparecer-me a InternalFrame por cima das minhas componentes…o que acontece nao e bem isso…se maximizar a janela Frame Princiapl a InternalFrame aparece mas no desktopPane (visto as InternalFRames terem de ser adicionadas ao desktopPane)…entre duas componentes minhas…
Nao sei se me expliquei muito bem…mas se puderem dar uma vista de olhos ao codigo e dar-me uma dica agradecia imenso
Joao
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.*;
public class TestInternalFrames extends JFrame{
/**
*
*/
private static final long serialVersionUID = 1L;
JInternalFrame internalFrame;
JLayeredPane desktop;
Container pane;
public TestInternalFrames() {
final JFrame window = new JFrame("Test");
window.setSize(1000,600);
window.setLocation(100, 100);
// Container of my Frame
pane = window.getContentPane();
// Panels to add my components
JPanel painel1 = new JPanel();
JPanel painel2 = new JPanel();
JPanel painel3 = new JPanel();
/****
*
*Menu Bar - Menu File| Menu Visualizations | Menu Help */
// Menu Bar Painel
JMenuBar menuBar = new JMenuBar();
// Menus
JMenu menuFile = new JMenu("File");
JMenu menuVis = new JMenu("Visualizations");
JMenu menuHelp = new JMenu("Help");
// Items File Menu
JMenuItem itemOpen = new JMenuItem("Open");
JMenuItem itemQuit = new JMenuItem("Quit");
// Items Visualizations Menu
JMenuItem visRect = new JMenuItem("Rect");
JMenuItem visPoint = new JMenuItem("Point");
// Items Help Menu
JMenuItem helpCont = new JMenuItem("Help Contents");
JMenuItem helpAbout = new JMenuItem("About");
// add Itens to File Menu
menuFile.add(itemOpen);
menuFile.add(itemQuit);
// add Itens to Visualization Menu
menuVis.add(visRect);
menuVis.add(visPoint);
// add Itens to Help Menu
menuHelp.add(helpCont);
menuHelp.add(helpAbout);
// Add Menus to Menus Panel
menuBar.add(menuFile);
menuBar.add(menuVis);
menuBar.add(menuHelp);
/****
* ToolBar
*/
// ToolBar Buttons
JButton zoomOut = new JButton("ZoomOut");
JButton zoomIn = new JButton("ZoomIn");
JButton pam = new JButton("Pan");
JButton scale = new JButton("Scale 1:1");
// ToolBar
JToolBar toolBar = new JToolBar("Test");
// Add buttons to ToolBar
toolBar.add(zoomOut);
toolBar.add(zoomIn);
toolBar.add(pam);
toolBar.add(scale);
// defining Layout
painel1.setLayout(new GridLayout(2,1));
painel1.add(menuBar);
painel1.add(toolBar);
// Visualization window - JScrollPane
JScrollPane scroller = new JScrollPane();
scroller.setPreferredSize(new Dimension(700,300));
// ScrollBars
scroller.getVerticalScrollBar().setUnitIncrement(5);
scroller.getHorizontalScrollBar().setUnitIncrement(5);
// Events Log Panel
JPanel painel7 = new JPanel();
// Events Log
JTextArea log = new JTextArea(5, 50);
log.setMargin(new Insets(5,5,5,5));
JScrollPane logScrollPane = new JScrollPane(log);
painel7.add(logScrollPane);
//defining Layout
painel2.setLayout(new BorderLayout());
painel2.add(scroller, BorderLayout.CENTER);
painel2.add(logScrollPane, BorderLayout.SOUTH);
// Open an Internal Frame when click in a button
painel3.setLayout(new GridLayout(3,1));
JPanel painel4 = new JPanel();
JTextArea textArea = new JTextArea("Click to Open an Internal Frame", 5, 20);
textArea.setLineWrap(true);
textArea.setBackground(Color.GRAY);
textArea.setWrapStyleWord(true);
//////////
JButton openButton;
openButton = new JButton("Edit");
painel4.add(textArea);
painel4.add(openButton);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
desktop = new JDesktopPane();
desktop.setOpaque(false);
openButton.addActionListener(new OpenListener());
painel3.add(painel4);
pane.add(desktop, BorderLayout.CENTER);
// Add final Panels to Container Pane of teh Frame
pane.add(painel1, BorderLayout.NORTH);
pane.add(painel2, BorderLayout.WEST);
pane.add(painel3, BorderLayout.EAST);
window.setVisible(true);
}
// An inner class to handle presses of the Open button
class OpenListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
if ((internalFrame == null) || (internalFrame.isClosed())) {
internalFrame = new JInternalFrame("Internal Frame", false,
false, false, false);
internalFrame.setBounds(50, 50, 200, 100);
// adding something to the Internal frame
Container paneInternal = internalFrame.getContentPane();
JPanel jp = new JPanel();
JButton bt = new JButton("test");
jp.add(bt);
paneInternal.add(jp);
desktop.add(internalFrame, new Integer(1));
internalFrame.moveToFront();
internalFrame.setVisible(true);
}
}
}
public static void main(String[] args) {
TestInternalFrames window1 = new TestInternalFrames();
}
}