Como criar uma interface gráfica em Java

já Uso Java há algum tempo, mas nunca criei um GUI - always CLI. Como se cria uma interface gráfica em Java? Você pode sugerir um bom tutorial / referência?

eu estou olhando para criar uma GUI simples que tem duas longas áreas de texto e alguns botões.

Author: Peter Mortensen, 2011-02-25

7 answers

Leia sobre Swing nas páginas do Tutorial Oracle.

 5
Author: Crozin, 2011-02-25 14:59:49
Aqui está um exemplo simples.
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;

public class Foo{

  public static void main(String[] args) {

    JFrame f = new JFrame("A JFrame");
    f.setSize(250, 250);
    f.setLocation(300,200);
    final JTextArea textArea = new JTextArea(10, 40);
    f.getContentPane().add(BorderLayout.CENTER, textArea);
    final JButton button = new JButton("Click Me");
    f.getContentPane().add(BorderLayout.SOUTH, button);
    button.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            textArea.append("Button was clicked\n");

        }
    });

    f.setVisible(true);

  }

}
 4
Author: Bala R, 2011-02-25 15:06:00

O que tem de fazer é criar o seu texto/código fino (nota Pad++ ou bloco de notas) e recordar o nome.

Então abra um tipo

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

Isto basicamente diz ao java para obter java.awt e javax.swing das suas várias bibliotecas de códigos que vieram com o java quando o descarregou (compreensível como esta é a linguagem feita para ajudar os programadores).

Então você precisa fazer a sua função que terá tudo do tamanho, texto dentro dele, ect de cor. REMEBER, nós não somos codificando aqui a interface como se já tivesse sido feita quando importámos java.awt.*; e javax.swing.*;.

Quando pus public class work, trabalhar em nome do meu ficheiro (se fosse chamado de código, seria public class code.

public class work {

private static void createWindow() {

 //Create and set up the window
 JFrame frame = new JFrame ("simple GUI");
 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 JLabel textLabel = new JLabel("Im cool" ,SwingConstants.CENTER); 
 textLabel.setPreferredSize(new Dimension(300, 100));
 frame.getContentPane().add(textLabel, BorderLayout.CENTER);
 //Display the window
 frame.setLocationRelativeTo(null);
 frame.pack();
 frame.setVisible(true); 

Lembre-se que você não chamou a função em nenhum lugar, é basicamente esperar lá até que seja chamado.

public static void main(String[] args) {
Isto diz ao computador que o que vier a seguir, tu fazes quando eu executar o programa.

Então, lá dentro tens de pôr

createWindow();

Pois isto é o que tu Chamada sua função acima e está chamando a função, você não precisa chamar esta função como ela faz quando você executa o programa.

 2
Author: WowItCompiled, 2017-01-27 20:54:44

Você tem diferentes possibilidades aqui, mas eu recomendaria usar Swing com um IDE como Netbeans, que fornece um editor WYSIWYG muito bom (chamado Matisse).

O Netbeans também tem modelos de projectos que pode usar para iniciar rapidamente.

Finalmente, como outros salientaram, certifique-se de fazer o seu trabalho de casa e ler alguns tutoriais de principiante.
 1
Author: dSebastien, 2011-02-25 15:04:45

Existe:

 1
Author: Jeremy, 2011-02-25 15:05:42
Criar um JFrame não é tão difícil quanto as pessoas pensam, tudo o que você precisa é de uma classe de definição e uma classe de GUI. É uma das coisas mais simples em Java

Classe De Definição:

public class GetMyJavaWindow {
public static void main (String args[]) {
new JavaWindow();
}
}

Classe JFrame:

import javax.swing.JFrame;

public class JavaWindow { // Class name must match what it says in the def. class
public static final long serialVersionUID = 1L; // Needed for the JFrame to work.

public JavaWindow() { // Must match class name

this.setVisible(true); // Required
this.setDefaultCloseOperation(EXIT_ON_CLOSE); // Required
this.setSize(800,600); // this.setSize (x,y);

}
}
Se precisares de mais ajuda GUI, vem ter comigo.
 1
Author: Galen Nare, 2013-01-17 20:54:30
 0
Author: Stijn Leenknegt, 2011-02-25 15:00:26