Come creare una GUI in Java


Ho usato Java per un po ' di tempo, ma non ho mai creato una GUI - sempre CLI. Come si crea una GUI in Java? Puoi suggerire un buon tutorial / riferimento?

Sto cercando di creare una semplice GUI con due lunghe aree di testo e alcuni pulsanti.

Author: Peter Mortensen, 2011-02-25

7 answers

Leggi Swing sulle pagine di Oracle Tutorial.

 5
Author: Crozin, 2011-02-25 14:59:49

Ecco un semplice esempio

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

Bene, quello che devi fare è creare il tuo testo/codice sottile (Blocco note++ o blocco note) e ricordare il nome.

Quindi aprilo un tipo

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

Questo fondamentalmente dice a java di ottenere java.awt e javax.swing dalle sue varie librerie di codice fornite con java quando lo hai scaricato (Comprensibile in quanto si tratta di un linguaggio creato per aiutare gli sviluppatori).

È quindi necessario rendere la vostra funzione che avrà tutto dalla dimensione, testo al suo interno, colore ect. RICORDA, non stiamo codificando la gui qui come è stato già fatto quando abbiamo importato import java.awt.*; e javax.swing.*;.

Quando metto public class work ,Lavoro nel nome del mio archivio (se fosse chiamato codice sarebbe 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); 

Ricorda che non hai chiamato la funzione da nessuna parte, in pratica aspetta lì finché non viene chiamata.

public static void main(String[] args) {

Questo dice al computer che ciò che viene dopo, lo fai quando eseguo il programma.

Quindi dentro devi mettere

createWindow();

Come questo è ciò che hai chiamato la tua funzione sopra e sta chiamando la funzione, non è necessario chiamare questa funzione come lo fa quando si esegue il programma.

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

Hai diverse possibilità qui, ma ti consiglio di usare Swing con un IDE come Netbeans, che fornisce un ottimo editor WYSIWYG (chiamato Matisse).

Netbeans ha anche modelli di progetto che è possibile utilizzare per iniziare rapidamente.

Infine, come altri hanno sottolineato, assicuratevi di fare i compiti e leggere alcuni tutorial Swing principianti.

 1
Author: dSebastien, 2011-02-25 15:04:45
 1
Author: Jeremy, 2011-02-25 15:05:42

Creare un JFrame non è così difficile come la gente pensa, tutto ciò di cui hai bisogno è una classe definition e una classe GUI. È una delle cose più semplici in Java

Classe di definizione:

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 hai bisogno di altro aiuto GUI, vieni da me.

 1
Author: Galen Nare, 2013-01-17 20:54:30
 0
Author: Stijn Leenknegt, 2011-02-25 15:00:26