Computerwissenschaften

Beispiel für einen Java-Code zum Erstellen einer einfachen GUI-App

Eine  grafische Benutzeroberfläche  einer mit Java  erstellten Anwendung  besteht aus Schichten von Containern. Die erste Ebene ist das Fenster, in dem die Anwendung auf dem Bildschirm Ihres Computers verschoben wird. Es handelt sich um einen Container der obersten Ebene, der allen anderen Containern und grafischen Komponenten einen Arbeitsplatz bietet. Bei einer Desktopanwendung wird dieser Container der obersten Ebene normalerweise mithilfe der JFrame-Klasse erstellt.

01 von 02

Hintergrund

Wie viele Ebenen eine GUI hat, hängt von Ihrem Design ab. Sie können grafische Komponenten wie Textfelder, Beschriftungen und Schaltflächen direkt in den  JFrame einfügen oder sie können in anderen Containern gruppiert werden, je nachdem, wie komplex die Anwendungs-GUI sein muss.

Der folgende Beispielcode zeigt, wie eine Anwendung aus einem JFrame, zwei JPanels und einem JButton erstellt wird, um die Sichtbarkeit der in den beiden JPanels enthaltenen Komponenten zu bestimmen. Verfolgen Sie die Vorgänge im Code, indem Sie die Implementierungskommentare lesen  , die durch zwei Schrägstriche am Anfang jeder Kommentarzeile gekennzeichnet sind.

Dieser Code gehört zur  Schritt-für-Schritt-Anleitung zum  Codieren einer einfachen grafischen Benutzeroberfläche – Teil I. Es zeigt, wie eine Anwendung aus a  JFrame, two  JPanels und erstellt wird  JButton. Die Schaltfläche bestimmt die Sichtbarkeit der Komponenten, die in den beiden enthalten sind  JPanels.

02 von 02

Java Code

Comstock / Stockbyte / Getty Images

Vergleichen Sie diesen Java-Code mit der Programmliste, die aus der Codierung einer einfachen grafischen Benutzeroberfläche – Teil II generiert wurde, in der der NetBeans GUI Builder zum Erstellen derselben GUI- Anwendung verwendet wird.

//Imports are listed in full to show what's being used
//could just import javax.swing.* and java.awt.* etc..
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JComboBox;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JList;
import java.awt.BorderLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class GuiApp1 {
//Note: Typically the main method will be in a
//separate class. As this is a simple one class
//example it's all in the one class.
public static void main(String[] args) {
new GuiApp1();
}
public GuiApp1()
{
JFrame guiFrame=new JFrame();
//make sure the program exits when the frame closes
guiFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
guiFrame.setTitle("Example GUI");
guiFrame.setSize(300,250);
//This will center the JFrame in the middle of the screen
guiFrame.setLocationRelativeTo(null);
//Options for the JComboBox
String[] fruitOptions={"Apple", "Apricot", "Banana"
,"Cherry", "Date", "Kiwi", "Orange", "Pear", "Strawberry"};
//Options for the JList
String[] vegOptions={"Asparagus", "Beans", "Broccoli", "Cabbage"
, "Carrot", "Celery", "Cucumber", "Leek", "Mushroom"
, "Pepper", "Radish", "Shallot", "Spinach", "Swede"
, "Turnip"};
//The first JPanel contains a JLabel and JCombobox
final JPanel comboPanel=new JPanel();
JLabel comboLbl=new JLabel("Fruits:");
JComboBox fruits=new JComboBox(fruitOptions);
comboPanel.add(comboLbl);
comboPanel.add(fruits);
//Create the second JPanel. Add a JLabel and JList and
//make use the JPanel is not visible.
final JPanel listPanel=new JPanel();
listPanel.setVisible(false);
JLabel listLbl=new JLabel("Vegetables:");
JList vegs=new JList(vegOptions);
vegs.setLayoutOrientation(JList.HORIZONTAL_WRAP);
listPanel.add(listLbl);
listPanel.add(vegs);
JButton vegFruitBut=new JButton( "Fruit or Veg");
//The ActionListener class is used to handle the
//event that happens when the user clicks the button.
//As there is not a lot that needs to happen we can
//define an anonymous inner class to make the code simpler.
vegFruitBut.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent event)
{
//When the fruit of veg button is pressed
//the setVisible value of the listPanel and
//comboPanel is switched from true to
//value or vice versa.
listPanel.setVisible(!listPanel.isVisible());
comboPanel.setVisible(!comboPanel.isVisible());
}
});
//The JFrame uses the BorderLayout layout manager.
//Put the two JPanels and JButton in different areas.
guiFrame.add(comboPanel, BorderLayout.NORTH);
guiFrame.add(listPanel, BorderLayout.CENTER);
guiFrame.add(vegFruitBut,BorderLayout.SOUTH);
//make sure the JFrame is visible
guiFrame.setVisible(true);
}
}

Similar Posts

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.