E ae pessoal, tudo certo? Alguém sabe dizer qual é o gerenciador de layout usado na construção da IDE Eclipse? Em outras palavras, como eu faço pra implementar um gerenciador de layout que funcione igual ao da própria IDE Eclipse, com as outras janelas sendo redimensionadas de acordo com o panel project explorer?
Layout do Eclipse [RESOLVIDO]
A
3 Respostas
J
1 like
S
Solucao aceita
2 likes
O eclipse não utiliza Swing, ao invés disso ele utiliza SWT, são frameworks para interface gráfica completamente diferentes.
Entretanto, você pode sim criar janelas com características iguais ao das janelas do eclipse.
Acontece que você não utiliza somente um gerenciador de layout, utiliza vários.
Cabe à você ter a criatividade de segregar suas telas em diversos painéis independentes, cada um com seu próprio layout e depois reunir estes painéis em outros painéis com outros gerenciadores de layout.
Exemplo hipotético:
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSplitPane;
import javax.swing.UIManager;
public class Exemplo {
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
Exemplo programa = new Exemplo();
programa.executar();
} catch (Throwable t) {
t.printStackTrace();
}
}
public void executar() {
JFrame janela = criarJanelaPrincipal();
janela.setSize(800, 600);
janela.setLocationRelativeTo(null);
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
janela.setVisible(true);
}
private MenuBar criarBarraMenu() {
MenuBar menuBar = new MenuBar();
menuBar.add(criarMenuArquivo());
return menuBar;
}
private JFrame criarJanelaPrincipal() {
JFrame frame = new JFrame("Exemplo");
frame.setMenuBar(criarBarraMenu());
frame.setContentPane(criarPainelPrincipal());
return frame;
}
private Menu criarMenuArquivo() {
Menu menu = new Menu();
menu.add(new MenuItem("MenuItem 1"));
menu.add(new MenuItem("MenuItem 2"));
menu.add(new MenuItem("MenuItem 3"));
menu.add(new MenuItem("MenuItem N"));
return menu;
}
private Component criarPainelConsole() {
JPanel panel = new JPanel(new BorderLayout());
panel.add(new JLabel("Console"), BorderLayout.CENTER);
return panel;
}
private Component criarPainelDireita() {
JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, criarPainelEditor(), criarPainelConsole());
return splitPane;
}
private Component criarPainelEditor() {
JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, criarPainelFonte(), criarPainelOutline());
return splitPane;
}
private Component criarPainelEsquerda() {
JPanel panel = new JPanel(new BorderLayout());
panel.add(new JLabel("PackageExplorer"), BorderLayout.CENTER);
return panel;
}
private Component criarPainelFonte() {
JPanel panel = new JPanel(new BorderLayout());
panel.add(new JLabel("Codigo Fonte"), BorderLayout.CENTER);
return panel;
}
private Component criarPainelOutline() {
JPanel panel = new JPanel(new BorderLayout());
panel.add(new JLabel("Outline"), BorderLayout.CENTER);
return panel;
}
private Container criarPainelPrincipal() {
JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, criarPainelEsquerda(), criarPainelDireita());
return splitPane;
}
}
A
1 like
Entendi! A sacada que estava me faltando era realmente essa, combinações de gerenciadores… Muito obrigado Staroski, seu exemplo me ajudou muito.
Criado 19 de agosto de 2017
Ultima resposta 21 de ago. de 2017
Respostas 3
Participantes 3
Alura Sistemas operacionais: entenda seu conceito e suas funções Descubra o que são sistemas operacionais, suas funções e tipos. Aprenda tudo de forma clara e objetiva. Não perca tempo!
Casa do Codigo Orientacao a Objetos: Aprenda seus conceitos e suas... Por Thiago Leite e Carvalho — Casa do Codigo