IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Java kompilácie a build v príkazovom riadku - GUI, balíček

V tomto Java tutoriále si vykonáme rozšírenie základných znalostí, ktoré sme sa predviedli v predchádzajúcej lekcii Java kompilácie a build v príkazovom riadku - Základy. V prvej časti si predvedieme primitívne GUI aplikáciu, v druhej časti vykonáme vytvorenie aplikácie, ktorá obsahuje spúšťací triedu v balíčku (package).

Počítam, že máte nastavené PATH do adresára v Jave, kde sa nachádzajú príslušné programy (java, javac, apod ..).

Vytvorenie GUI aplikácie

Čo bude obsahom GUI aplikácie? Nič výnimočné, vytvoríme si okno, nastavíme mu nejaké parametre (polohu a veľkosť), vložíme do neho tlačidlo a nastavíme mu udalosť. Udalosť bude iba zobrazovať MessageBox.

Takže opäť spustíme príkazový riadok a prevedieme analogický postup ako v predchádzajúcom diele. Za pomocou príkazu md ProgramGUI vytvoríme adresár ProgramGUI. Po vykonaní sa doň presunieme cez príkaz cd ProgramGUI. V adresári potom vytvoríme zdrojový súbor cez príkaz fsutil file createnew ProgramGUI.java 0. Ďalej vykonáme úpravu zdrojového súboru cez príkaz notepad ProgramGUI.java, vložíme kód nižšie, súbor uložíme a notepad ukončíme.

D:\
└── ProgramGUI
   └── ProgramGUI.java

Swing

Pre staršie Swing framework by zdrojový kód vyzeral takto:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ProgramGUI {

    public static void main(String[] args) {
        JFrame okno = new JFrame("Nase okno");
        okno.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent arg0) {
                System.exit(1);
            }
        });
        okno.setSize(600,400);
        okno.setLocation(500,300);
        okno.getContentPane().setBackground(Color.cyan);
        okno.setLayout(null);
        JButton tlacitko = new JButton("Stiskni me");
        tlacitko.setBounds(200, 80, 200, 200);
        tlacitko.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                JOptionPane.showMessageDialog(okno,"Dobry den");
            }
        });
        okno.add(tlacitko);
        okno.setVisible(true);
    }
}

JavaFX

Ak chceme vyskúšať JavaFX, tak tu je podobný program napísaný v JavaFX bez MVC (FXML).

Tento zdrojový kód bude fungovať len u Java10, 09, 08. U Java11 a vyšších je JavaFX odobraná z JDK a je nutné používať externé knižnice (framework)

import javafx.application.*;
import javafx.event.*;
import javafx.geometry.Pos;
import javafx.scene.*;
import javafx.scene.control.*;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.layout.*;
import javafx.stage.Stage;
public class ProgramGUI extends Application {
    private Scene scene;
    public static void main(String[] args) {
        Application.launch(args);
    }
    public void start(Stage stage) throws Exception {
        Button tlac = new Button("Stiskni mě");
        tlac.setPrefSize(200,100);
        tlac.setOnAction(new EventHandler<ActionEvent>() {
            public void handle(ActionEvent ae) {
                Alert alert = new Alert(AlertType.INFORMATION);
                alert.setTitle("Pozor");
                alert.setContentText("Dobry den");
                alert.show();
            }
        });
        FlowPane flowpane = new FlowPane(10,10);
        flowpane.setAlignment(Pos.CENTER);
        flowpane.setStyle("-fx-background-color: rgb(193, 122, 68)");
        flowpane.getChildren().add(tlac);
        scene = new Scene(flowpane, 500, 250);
        stage.setScene(scene);
        stage.setTitle("Nase Okno");
        stage.show();
    }
}

Ako ďalší krok vykonáme opäť kompiláciu zdrojového kódu do bytekódu. Toho opäť docielime cez príkazový riadok príkazom javac ProgramGUI.java. Kompiláciou vznikne súbor ProgramGUI.class a pretože v kóde máme nejaké udalosti, ktoré riešime cez anonymné triedy, vzniknú nám tam ešte ďalšie triedy ProgramGUI$1.class, ProgramGUI$2.class ktorý obsluhujú danej udalosti.

D:\
└── ProgramGUI
   ├── ProgramGUI$2.class
   ├── ProgramGUI$1.class
   ├── ProgramGUI.class
   └── ProgramGUI.java

Teraz nám ostáva len daný zdrojový kód spustiť. To docielime príkazom java ProgramGUI. Ako vidíte, všetko funguje.

Jar

Teraz nás čaká tvorba jar súboru. Ako prvý krok si vytvoríme súbor manifestu. Ten vytvoríme cez príkaz fsutil file createnew manifest.man 0. Ďalej vykonáme úpravu daného manifestu cez príkaz notepad manifest.man, vložíme kód nižšie, súbor uložíme a notepad ukončíme.

Manifest-Version: 1.0
Main-Class: ProgramGUI
Created-By: 1.8.0_144 (Oracle Corporation)

Teraz vykonáme build čiže vytvoríme * .jar súbor. Vykonáme príkaz jar cmf manifest.man Program.jar *.class. Ako vidíte, vytvorili sme Program.jar. Teraz si daný program spustíme. Pretože to je GUI aplikácia, možno ju spustiť double-CLIK. Program.jar teda presuňte na plochu (Desktop) a dvakrát kliknite. Všetko by malo fungovať.

D:\
└── ProgramGUI
   ├── manifest.man
   ├── Program.jar
   ├── ProgramGUI$2.class
   ├── ProgramGUI$1.class
   ├── ProgramGUI.class
   └── ProgramGUI.java

Samozrejme spustenie je možné vykonať aj cez príkazový riadok. Ide to buď ako java -jar Program.jar alebo ako java -cp Program.jar ProgramGUI.

GUIaplikace - Java - Pre pokročilých

Vytvorenie aplikácie s balíčkom (package)

Bude sa jednať prakticky o samospustiteľný (runnable) jar ako v predchádzajúcom článku (diele), avšak príklad bude mať spúšťací triedu v balíčku (package). Čím väčšia programy budete robiť, tým skôr zistíte, že systém balíčkov je nevyhnutný a pomáha vám v prehľadnosti projektu. Náš príklad kvôli zjednodušeniu využíva iba jeden balíček, ale ak ich budete mať 10, 100, 1000, ... je len na vás. Riešenie je analogické.

D:\
└── ProgramPackageJAVA
   └── balicek
       └── ProgramBalicek.java

Potom, čo sme si spustili príkazový riadok, si vytvoríme v akejkoľvek adresári zdrojový súbor, kde bude zdrojový kód uložený (napr. ProgramJava.java). Za pomoci príkazu md ProgramPackageJAVA vytvoríme adresár ProgramPackageJAVA. Po vykonaní sa doň presunieme cez príkaz cd ProgramPackageJAVA. V tomto adresári vytvoríme ďalší podadresár, ktorý bude predstavovať baličiek (package) a to príkazom md balicek. Po vykonaní sa doň presunieme cez príkaz cd balicek. V adresári potom vytvoríme zdrojový súbor cez príkaz fsutil file createnew ProgramBalicek.java 0. Ďalej vykonáme úpravu zdrojového súboru cez príkaz notepad ProgramBalicek.java, vložíme kód nižšie, súbor uložíme a notepad ukončíme.

package balicek;
public class ProgramBalicek {
    public static void main (String [] args) {
        System.out.println("Ahoj program z Javy s balickem");
    }
}

Pred kompiláciou sa presunieme o úroveň vyššie príkazom cd ... Teraz vykonáme kompiláciu cez príkazový riadok príkazom:

javac balicek\*.java`

Kompiláciou vznikne súbor ProgramBalicek.class. Teraz nám ostáva len daný zdrojový kód spustiť.

D:\
└── ProgramPackageJAVA
   └── balicek
      ├── ProgramBalicek.class
      └── ProgramBalicek.java

To docielime príkazom java balicek.ProgramBalicek. Ako vidíte, všetko funguje.

Kompilácia Package v Jave cez príkazový riadok - Java - Pre pokročilých

Teraz nás opäť čaká tvorba spustiteľného jar súboru.

D:\
└── ProgramPackageJAVA
   ├── manifest.man
   └── balicek
      ├── ProgramBalicek.class
      └── ProgramBalicek.java

Vytvoríme si súbor manifestu cez príkaz fsutil file createnew manifest.man 0. Ďalej vykonáme úpravu daného manifestu cez príkaz notepad manifest.man, vložíme text nižšie, súbor uložíme a notepad ukončíme.

Manifest-Version: 1.0
Main-Class: balicek.ProgramBalicek
Created-By: 1.8.0_144 (Oracle Corporation)

Teraz vykonáme build čiže vytvoríme * .jar súbor. Vykonáme príkaz:

jar cmf manifest.man ProgramBalicek.jar balicek\*.class

Ako vidíte, vytvorili sme ProgramBalicek.jar.

D:\
└── ProgramPackageJAVA
   ├── ProgramBalicek.jar
   ├── manifest.man
   └── balicek
      ├── ProgramBalicek.class
      └── ProgramBalicek.java

No a teraz si daný program spustíme. Spustenie v príkazovom riadku ide buď pomocou java -jar ProgramBalicek.jar alebo ako java -cp ProgramBalicek.jar balicek.ProgramBalicek.

Spustenie balíčka v Jave - Java - Pre pokročilých

 

Stiahnuť

Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami

Stiahnuté 529x (5.74 kB)

 

Všetky články v sekcii
Java - Pre pokročilých
Článok pre vás napísal Robert Michalovič
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Programuji převážně v Javě SE,EE a trochu nativním C a CUDA. více viz.https://cz.linkedin.com/in/robert-michalovic
Aktivity