Ricerca…


Osservazioni

Chiudere l'applicazione alla chiusura della finestra

È facile dimenticare di chiudere l'applicazione quando la finestra è chiusa. Ricorda di aggiungere la seguente riga.

frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); //Quit the application when the JFrame is closed

Creazione di una finestra vuota (JFrame)

Creare il JFrame

Creare una finestra è facile. Devi solo creare un JFrame .

JFrame frame = new JFrame();

Intitolando la finestra

Potresti voler dare un titolo alla tua finestra. Puoi farlo passando una stringa quando crei JFrame o chiamando frame.setTitle(String title) .

JFrame frame = new JFrame("Super Awesome Window Title!");
//OR
frame.setTitle("Super Awesome Window Title!");

Impostazione della dimensione della finestra

La finestra sarà il più piccola possibile quando è stata creata. Per ingrandirlo, puoi impostarne le dimensioni in modo esplicito:

frame.setSize(512, 256);

Oppure puoi avere la dimensione del frame stessa in base alla dimensione del suo contenuto con il metodo pack() .

frame.pack();

I metodi setSize() e pack() si escludono a vicenda, quindi utilizzare uno o l'altro.

Cosa fare alla fine della finestra

Si noti che l'applicazione non si chiuderà quando la finestra è stata chiusa. Puoi chiudere l'applicazione dopo che la finestra è stata chiusa dicendo a JFrame di farlo.

frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

In alternativa, puoi dire alla finestra di fare qualcos'altro quando è chiuso.

WindowConstants.DISPOSE_ON_CLOSE //Get rid of the window
WindowConstants.EXIT_ON_CLOSE //Quit the application
WindowConstants.DO_NOTHING_ON_CLOSE //Don't even close the window
WindowConstants.HIDE_ON_CLOSE //Hides the window - This is the default action

Creazione di un riquadro del contenuto

Un passaggio facoltativo consiste nel creare un riquadro del contenuto per la tua finestra. Questo non è necessario, ma se vuoi farlo, crea un JPanel e chiama frame.setContentPane(Component component) .

JPanel pane = new JPanel();
frame.setContentPane(pane);

Mostrando la finestra

Dopo averlo creato, dovrai creare i tuoi componenti, quindi mostrare la finestra. Mostrare la finestra è fatto come tale.

frame.setVisible(true);

Esempio

Per quelli di voi che amano copiare e incollare, ecco un esempio di codice.

JFrame frame = new JFrame("Super Awesome Window Title!"); //Create the JFrame and give it a title
frame.setSize(512, 256); //512 x 256px size
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); //Quit the application when the JFrame is closed

JPanel pane = new JPanel(); //Create the content pane
frame.setContentPane(pane); //Set the content pane

frame.setVisible(true); //Show the window

Esempio di output

Aggiunta di componenti

Un componente è una sorta di elemento dell'interfaccia utente, ad esempio un pulsante o un campo di testo.

Creazione di un componente

La creazione di componenti è quasi identica alla creazione di una finestra. Invece di creare un JFrame , tuttavia, lo crei. Ad esempio, per creare un JButton , fai quanto segue.

JButton button = new JButton();

Molti componenti possono avere parametri passati a loro una volta creati. Ad esempio, a un pulsante può essere dato del testo da visualizzare.

JButton button = new JButton("Super Amazing Button!");

Se non si desidera creare un pulsante, è possibile trovare un elenco di componenti comuni in un altro esempio in questa pagina.

I parametri che possono essere passati a loro variano da un componente all'altro. Un buon modo per verificare ciò che possono accettare è guardando i paramter all'interno del tuo IDE (se ne usi uno). Le scorciatoie predefinite sono elencate di seguito.

  • IntelliJ IDEA - Windows / Linux: CTRL + P
  • IntelliJ IDEA - OS X / macOS: CMD + P
  • Eclipse: CTRL + SHIFT + Space
  • NetBeans: CTRL + P

Esempio di informazioni sui parametri del metodo di visualizzazione in IntelliJ IDEA

Mostrando il componente

Dopo che un componente è stato creato, in genere devi impostare i suoi parametri. Dopo, devi metterlo da qualche parte, ad esempio sul tuo JFrame , o sul pannello dei contenuti, se ne hai creato uno.

frame.add(button); //Add to your JFrame
//OR
pane.add(button); //Add to your content pane
//OR
myComponent.add(button); //Add to whatever

Esempio

Ecco un esempio di creazione di una finestra, impostazione di un riquadro del contenuto e aggiunta di un pulsante.

JFrame frame = new JFrame("Super Awesome Window Title!"); //Create the JFrame and give it a title
frame.setSize(512, 256); //512 x 256px size
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); //Quit the application when the JFrame is closed

JPanel pane = new JPanel(); //Create the content pane
frame.setContentPane(pane); //Set the content pane

JButton button = new JButton("Super Amazing Button!"); //Create the button
pane.add(button); //Add the button to the content pane

frame.setVisible(true); //Show the window

Esempio di output

Impostazione dei parametri per i componenti

I componenti hanno vari parametri che possono essere impostati per loro. Variano da componente a componente, quindi un buon modo per vedere quali parametri possono essere impostati per i componenti è iniziare a digitare componentName.set e lasciare che il completamento automatico del tuo IDE (Se si utilizza un IDE) suggerisca metodi. Il collegamento predefinito in molti IDE, se non viene visualizzato automaticamente, è CTRL + Space .

Completamento automatico in IntelliJ IDEA

Parametri comuni condivisi tra tutti i componenti

Descrizione Metodo
Imposta la dimensione più piccola che può essere il componente (solo se il gestore di layout onora la proprietà minimumSize) setMinimumSize(Dimension minimumSize)
Imposta la dimensione massima che può essere il componente (solo se il gestore di layout onora la proprietà maximumSize) setMaximumSize(Dimension maximumSize)
Imposta la dimensione perferita del componente (solo se il gestore del layout onora la proprietà preferredSize) setPreferredSize(Dimension preferredSize)
Mostra o nasconde il componente setVisible(boolean aFlag)
Imposta se il componente deve rispondere all'input dell'utente setEnabled(boolean enabled)
Imposta il carattere del testo setFont(Font font)
Imposta il testo del suggerimento setToolTipText(String text)
Imposta il Colore sfondo del componente setBackground(Color bg)
Imposta il colore di primo piano (colore del carattere) del componente setForeground(Color bg)

Parametri comuni in altri componenti

Componenti comuni Descrizione Metodo
JLabel , JButton , JCheckBox , JRadioButton , JToggleButton , JMenu , JMenuItem , JTextArea , JTextField Imposta il testo visualizzato setText(String text)
JProgressBar , JScrollBar , JSlider , JSpinner Imposta un valore numerico tra i valori minimo e massimo del componente setValue(int n)
JProgressBar , JScrollBar , JSlider , JSpinner Imposta è il più piccolo valore possibile che può essere la proprietà value setMinimum(int n)
JProgressBar , JScrollBar , JSlider , JSpinner Set è il più grande valore possibile che può essere la proprietà value setMaxmimum(int n)
JCheckBox , JToggleBox Imposta se il valore è vero o falso (Es .: Se una casella di controllo è selezionata?) setSelected(boolean b)

Componenti comuni

Descrizione Classe
Pulsante JButton
casella di controllo JCheckBox
Menu a discesa / casella combinata JComboBox
Etichetta JLabel
Elenco JList
Barra dei menu JMenuBar
Menu in una barra dei menu JMenu
Articolo in un menu JMenuItem
Pannello JPanel
Barra di avanzamento JProgressBar
Pulsante di scelta JRadioButton
Barra di scorrimento JScrollBar
Slider JSlider
Spinner / Selezione numero JSpinner
tavolo JTable
Albero JTree
Area di testo / campo di testo multilinea JTextArea
Campo di testo JTextField
Barra degli strumenti JToolBar

Realizzare interfacce utente interattive

Avere un pulsante è tutto buono e buono, ma che senso ha se cliccarlo non fa nulla? ActionListener vengono usati per dire al tuo pulsante, o ad altri componenti di fare qualcosa quando è attivato.

L'aggiunta di ActionListener viene eseguita come tale.

buttonA.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        //Code goes here...
        System.out.println("You clicked the button!");
    }
});

Oppure, se stai usando Java 8 o successivo ...

buttonA.addActionListener(e -> {
    //Code
    System.out.println("You clicked the button!");
});

Esempio (Java 8 e versioni successive)

JFrame frame = new JFrame("Super Awesome Window Title!"); //Create the JFrame and give it a title
frame.setSize(512, 256); //512 x 256px size
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); //Quit the application when the JFrame is closed

JPanel pane = new JPanel(); //Create a pane to house all content
frame.setContentPane(pane);

JButton button = new JButton("Click me - I know you want to.");
button.addActionListener(e -> {
    //Code goes here
    System.out.println("You clicked me! Ouch.");
});
pane.add(buttonA);

frame.setVisible(true); //Show the window

Organizzazione del layout dei componenti

L'aggiunta di componenti uno dopo l'altro determina un'interfaccia utente difficile da utilizzare, poiché i componenti sono tutti da qualche parte . I componenti sono ordinati dall'alto verso il basso, ogni componente in una "fila" separata.

Per ovviare a questo e fornirti come sviluppatore la possibilità di LayoutManager facilmente di componenti di layout, Swing dispone di LayoutManager .

Questi LayoutManager sono trattati in modo più approfondito in Introduzione ai gestori di layout e negli argomenti di Layout Manager separati:



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow