Olá pessoal, alguém poderia me ajudar nestes conceitos… encontrei várias apostilas e textos explicando, mas nenhum ajudou na hora da prática…
Fiz o código abaixo, porém, meus Labels, Botões…e demais compoenente estão aparecendo tudo misturado na tela…
[code]class Janela extends JFrame{
//Labels
JLabel label1 = new JLabel("PROGRAMA");
JLabel label2 = new JLabel("Registradores");
JLabel label3 = new JLabel("0");
JLabel label4 = new JLabel("1");
JLabel label5 = new JLabel("2");
JLabel label6 = new JLabel("3");
JLabel label7 = new JLabel("PC");
//Caixa de Texto
JTextField reg1 = new JTextField(5);
JTextField reg2 = new JTextField(5);
JTextField reg3 = new JTextField(5);
JTextField reg4 = new JTextField(5);
JTextField reg5 = new JTextField(5);
//Botões
JButton bt1 = new JButton("Próximo Passo");
JButton bt2 = new JButton("Carregar...");
//Componente para visualizar "Programa"
JPanel j = new JPanel();
public Janela() throws Exception{
Container c = getContentPane();
// c.setLayout (new FlowLayout(30,3,30));
c.setLayout(new GridLayout(0,2,0,2));
// c.setLayout(new BorderLayout());
//Título e Dimensão da Janela
setTitle("Janela Teste");
setSize(800,600);
setLocation(200,100);
c.add(label1);
label1.setHorizontalTextPosition(SwingConstants.LEFT);
c.add(new JScrollPane(j));
JTextArea t = new JTextArea ();//linha,100,60);
j.add(t);
c.add (label2);
c.add (label3); c.add(reg1);
c.add(label4); c.add(reg2);
c.add(label5); c.add(reg3);
c.add(label6); c.add(reg4);
c.add(label7); c.add(reg5);
c.add(bt1);
c.add(bt2);
}
Bom, eu usava netbeans pra fazer tudo…
Então eu fui trabalhar numa empresa, e eles me passaram um projeto… Feito em eclipse…
Não entendi porra nenhuma, fikei perdidinho…
Então tive que aprender como funciona.
Realidade:
Quem programa só em netbeans, quando pega um projeto em eclipse fica perdidinho.
Quem programa em eclipse sabe programar em netbeans.
O netbeans gera uma porrada de porcaria no seu código, deixando ele praticamente ilegivel se vc tentar ler sua classe inteira.
Então comecei a usar o eclipse, e confesso que fikei viciado nele…
Quando programava no netbeans, só usando o drag and drope, se vc falasse para mim: Gere uma telinha, que mostre um botão nela, e quando apertar nesse botão exiba uma mensagem.
Eu não saberia fazer sem ser no drag and drope, tendo que fazer “extends jframe”, “set title”, “add …”
E como Eclipse é a IDE mais usada nas empresas, não tem como vc ficar sem entende-la…
VAI ABAIXO UM EXEMPLO DE PROJETOS, 1 FEITO EM NETBEANS E OUTRO EM ECLIPSE (TEM A MESMA FUNÇÃO)
Bom, tá ae os exemplos, eles só exibem num joptionpane o que foi escrito em um jtextfield.
Rode os 2 na sua máquina
Feito em netbeans:
[code]/*
To change this template, choose Tools | Templates
and open the template in the editor.
*/
/*
NewJFrame.java
Created on 09/05/2010, 22:52:55
*/
package javaapplication9;
import javax.swing.JOptionPane;
/**
*
@author Pedro
*/
public class NewJFrame extends javax.swing.JFrame {
/** Creates new form NewJFrame */
public NewJFrame() {
setTitle(“Net Beans sux.”);
setLocationRelativeTo(null);
initComponents();
}
/** This method is called from within the constructor to
initialize the form.
WARNING: Do NOT modify this code. The content of this method is
always regenerated by the Form Editor.
*/ @SuppressWarnings(“unchecked”)
//
private void initComponents() {
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton();
@param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NewJFrame().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JTextField jTextField1;
// End of variables declaration
private JLabel _jLabelBemVindo;
private JLabel _jLabelDigite;
private JTextField _jTextDigite;
private JButton _jbtnBut;
public Example() {
setTitle("Mig Layout Rox");
setLayout(new MigLayout()); // aqui está a mágica!
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
instaciarComponentes();
add(_jLabelBemVindo, "span");
add(_jLabelDigite, "gaptop 20");
add(_jTextDigite, "span");
add(_jbtnBut, "grow,span");
pack();
setLocationRelativeTo(null);
}
private void instaciarComponentes() {
_jLabelDigite = new JLabel("Digite algo aqui:");
_jTextDigite = new JTextField(14);
_jbtnBut = new JButton("Mostrar");
_jbtnBut.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null, _jTextDigite.getText());
}
});
_jLabelBemVindo = new JLabel("Bem Vindo ao programa utilizando Mig Layout.");
}
public static void main(String args[]) {
new Example().setVisible(true);
}
}[/code]
Deu pra perceber o tanto de porcariada que o netbeans colocou no seu projeto…
No eclipse para qualquer mudança que você queira fazer, fica fácil mexer no seu código, vc tem controle, pois foi VOCÊ QUE FEZ TUDO.
Fora o código ilegível que o netbeans gera nakela parte:
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
..
..
..
Fico feliz de ver que cada vez mais usuários usam o MigLayout.Há uma diferença estelar dele para os demais principalmente se vc irá fazer bons forms.
Seria interessante depois alguém fazer um tutorial beem completo com bons exemplos de miglayout aqui para guj.Apesar de cada vez mais adotado, ainda se encontram mais exemplos(BONS) de FormsLayout(um poucoultrapassado) do que do MigLayout.
Se não estivesse com os probleminhas chatos aqui(a máquina do tio Iron tá indo para o Céu das máquinas…rsrsrs) eu me habilitaria.
[quote=Ironlynx]Fico feliz de ver que cada vez mais usuários usam o MigLayout.Há uma diferença estelar dele para os demais principalmente se vc irá fazer bons forms.
Seria interessante depois alguém fazer um tutorial beem completo com bons exemplos de miglayout aqui para guj.Apesar de cada vez mais adotado, ainda se encontram mais exemplos(BONS) de FormsLayout(um poucoultrapassado) do que do MigLayout.
Se não estivesse com os probleminhas chatos aqui(a máquina do tio Iron tá indo para o Céu das máquinas…rsrsrs) eu me habilitaria.[/quote]
Eu também já pensei em fazer um assim, mas o tempo ficou curto.
Geralmente são esses que vc vai usar…
primeiro vc faz o add do componente, e depois coloca uma virgula, e passa uma string, sobre a posição
gaptop10: 10 pixels de espaço para cima
gapleft10: 10 pixels de espaço da esquerda para direita
gapright10: 10 pixels de espaço da direita para esquerda
gaplbotton10: 10 pixels de espaço para baixo
vc pode usar mais de um dentro do “” tipo assi:
“span, grow” : ele vai ocupar a o resto da linha inteiro e o proximo componente que for inserido, quebra a linha (como acontece com o ultimo jtextfield da imagem acima)
“span, center”: coloca ele no centro, e o proximo componente que for add quebra a linha
"wrap": quebra a linha
"span, grow, gaptop10,gapbottn10: Tenta adivinhar… kkkk
Geralmente são esses que vc vai usar…
primeiro vc faz o add do componente, e depois coloca uma virgula, e passa uma string, sobre a posição
gaptop10: 10 pixels de espaço para cima
gapleft10: 10 pixels de espaço da esquerda para direita
gapright10: 10 pixels de espaço da direita para esquerda
gaplbotton10: 10 pixels de espaço para baixo
vc pode usar mais de um dentro do “” tipo assi:
“span, grow” : ele vai ocupar a o resto da linha inteiro e o proximo componente que for inserido, quebra a linha (como acontece com o ultimo jtextfield da imagem acima)
“span, center”: coloca ele no centro, e o proximo componente que for add quebra a linha
"wrap": quebra a linha
"span, grow, gaptop10,gapbottn10: Tenta adivinhar… kkkk