1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

GUI em JAVA

Discussão em 'Programação' iniciada por AwakE, 14 de Novembro de 2004. (Respostas: 5; Visualizações: 1080)

  1. AwakE

    AwakE Banido

    Bem...tá aqui um exemplo de um GUI escrito em JAVA, mas....não funciona :D.

    Infelizmente a janela aparece vazia, excepto o menu "File"....
    Alguem me pode dizer o que tá errado. Sou noob em JAVA.

    import java.awt.*;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;

    // Classe o MeuGui derivada da classe Frame
    public class MeuGUI extends Frame{

    public static void main(String[] args) {

    new MeuGUI();
    }
    public MeuGUI(){
    //titulo
    setTitle("O Meu GUI");
    setVisible(true);
    setLayout(new FlowLayout());

    setSize(700,700);
    // regista o Listener para o evento que fecha a janela
    addWindowListener(new WindowAdapter(){
    public void windowClosing (WindowEvent e){
    System.exit(0);
    }
    });
    // cria botoes....
    Button open = new Button("Open");
    Button quit = new Button("Quit");
    Button save = new Button("Save");
    Panel buttons = new Panel();
    // ...dentro de um painel
    buttons.add(open);
    buttons.add(save);
    buttons.add(quit);
    // adiciona o painel à frame
    add(buttons);

    TextField texto = new TextField(70);
    Font fonte = new Font("Courier",Font.PLAIN,10);
    texto.setFont(fonte);
    add(texto);
    texto.setVisible(true);

    // Define a barra lá de cima "File"
    MenuBar menu = new MenuBar();
    Menu file = new Menu("File");
    file.add(new MenuItem("Open..."));
    file.add(new MenuItem("Save"));
    file.add(new MenuItem("Save as..."));
    file.addSeparator();
    file.add(new CheckboxMenuItem("Confirm changes?"));
    file.add(new MenuItem("Quit"));
    menu.add(file);
    setMenuBar(menu);

    }
    }
     
  2. Karakatoa

    Karakatoa Power Member

    exprimenta chamar o método pack() do Frame após a construção de todos os componentes.
     
  3. batmaki

    batmaki Power Member

    tens de chamar o metodo setVisible() apenas no fim de adicionares todos os componentes à Frame, caso contrário estás a mostrar coisas k ainda nem crias-te. Primeiro crias os componentes, depois adicionas à frame e depois é k a metes visible ;)
     
  4. AwakE

    AwakE Banido

    Pois...por acaso esta era a versão antiga do código, já tinha posto o setVisible no fim. Depois tentei o .pack(), mas tb não deu.... é estranho...

    A voces aparece alguma coisa com este codigo? Se usar código para SWING já aparece... :(
     
  5. batmaki

    batmaki Power Member

    Experimenta este código: :x2:

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;

    // Classe o MeuGui derivada da classe Frame
    public class MeuGUI extends JFrame
    {
    public static void main(String[] args)
    {
    new MeuGUI();
    }

    public MeuGUI()
    {
    //titulo
    setTitle("O Meu GUI");
    setDefaultCloseOperation(this.EXIT_ON_CLOSE);
    Container painel_principal = getContentPane();
    painel_principal.setLayout(new FlowLayout());
    setSize(700,700);

    // cria botoes....
    Button open = new Button("Open");
    Button quit = new Button("Quit");
    Button save = new Button("Save");
    Panel buttons = new Panel();

    // ...dentro de um painel
    buttons.add(open);
    buttons.add(save);
    buttons.add(quit);

    // adiciona o painel à frame
    painel_principal.add(buttons);

    TextField texto = new TextField(70);
    Font fonte = new Font("Courier",Font.PLAIN,10);
    texto.setFont(fonte);
    painel_principal.add(texto);

    // Define a barra lá de cima "File"
    MenuBar menu = new MenuBar();
    Menu file = new Menu("File");
    file.add(new MenuItem("Open..."));
    file.add(new MenuItem("Save"));
    file.add(new MenuItem("Save as..."));
    file.addSeparator();
    file.add(new CheckboxMenuItem("Confirm changes?"));
    file.add(new MenuItem("Quit"));
    menu.add(file);
    setMenuBar(menu);
    setVisible(true);
    }
    }
     
  6. Lostctrl

    Lostctrl [email protected] Member

    Boas,

    Basta-te incluir estas 2 instruçoes no fim a seguir ao setMenuBar(menu);

    pack();
    show();

    E já funciona...
     

Partilhar esta Página