< Java

Java library

Szerző: Sallai András

Copyright © 2022, Sallai András

Szerkesztve: 2023

Licenc: CC BY-SA 4.0

Web: https://szit.hu

Projekt

Egy Swing megoldásból készítünk saját programozói könyvtárat. A végeredmény egy .jar fájl lesz.

Egy InputPanel osztályt hozunk létre, ami a JPanel-ből készül. Teszünk fel rá feliratot és egy beviteli mezőt. Csomagnak hu.nagyjanos domain állítjuk be.

package hu.nagyjanos; import javax.swing.BoxLayout; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.border.EmptyBorder; public class InputPanel extends JPanel { JLabel label; JTextField field; public InputPanel() { this.label = new JLabel("InputPanel"); this.field = new JTextField(); this.setLayout(new BoxLayout(this, BoxLayout.LINE_AXIS)); this.setBorder(new EmptyBorder(5, 10, 5, 10)); this.label.setBorder(new EmptyBorder(0, 0, 0, 10)); this.addComponent(); } public void addComponent() { this.add(label); this.add(field); } public InputPanel(JLabel label) { this.label = label; } public void setText(String text) { this.label.setText(text); } public String getText() { return this.label.getText(); } public void setValue(String value) { this.field.setText(value); } public String getValue() { return this.field.getText(); } }

Vegyük észre a package sor:

package hu.nagyjanos;

Ha van az Interneten tartománynevünk, akkor azt szokás ide tenni. Tegyük fel, hogy van egy nagyjanos.hu tartománynevünk. Ezt felírjuk fordított sorrendben. Ennek megfelelő könyvtárszerkezetbe rakjuk az InputPanelt.

Könyvtárszerkezet

A projektből töröltük az App.java fájlt:

inputpanel/
|-.vscode/
|-bin/
|-lib/
|-src/
| `-hu/
| `-nagyjanos/
| `-InputPanel.java
`-README.md

Fontos a projektkönyvtár neve, mivel ezen a néven jön létre a .jar fájl, bár utólag is átnevezhető.

A modul exportálása

Nyissuk meg az InputPanel.java fájt VSCode-ban.

Az Explolerben keressük meg a JAVA PROJECTS részt

Ha az egeret az elem felé visszük látunk ott egy talpas nyilat, ami jobbra mutat.

Az „Export Jar…” felirat jelenik meg. Kattintsunk.

A projekt gyökérkönyvtárában létrejön egy inputpanel.jar fájl.

A inputpanel.jar fájl, most már használható lett más projektekben.

Javadoc

package hu.nagyjanos; import javax.swing.BoxLayout; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.border.EmptyBorder; /** * Az InputPanel egy Swing komponens, ami * alkalmas valamilyen érték bekérésére. * A felirat és a bevitelimező egymás * mellett helyezkedik el. * * @author Nagy János * @version 1.0 * @since 2022-12-04 */ public class InputPanel extends JPanel { private JLabel label; private JTextField field; /** * Példány létrehozása az InputPanelből */ public InputPanel() { this.label = new JLabel("InputPanel"); this.field = new JTextField(); this.setLayout(new BoxLayout(this, BoxLayout.LINE_AXIS)); this.setBorder(new EmptyBorder(5, 10, 5, 10)); this.label.setBorder(new EmptyBorder(0, 0, 0, 10)); this.addComponent(); } private void addComponent() { this.add(label); this.add(field); } /** * Példány létrehozása felirat beállításával * @param label A panel feliratának szövege */ public InputPanel(JLabel label) { this.label = label; } /** * A panel feliratának beállítása * @param text A felirat szövege */ public void setText(String text) { this.label.setText(text); } /** * A panel feliratnának lekérdezése * @return Visszatér a panel feliratával */ public String getText() { return this.label.getText(); } /** * A panel értékének beállítása * @param value A penel értéke */ public void setValue(String value) { this.field.setText(value); } /** * A panel értékének lekérdezése * @return Visszatér a panel értékével */ public String getValue() { return this.field.getText(); } }

Generálás:

javadoc -d javadoc src/hu/nagyjanos/InputPanel.java

A label és field adattagokra figyelmeztetést kapunk, mivel nem írtunk hozzá megjegyzést, de tiszta kód elvei szerint nem kell oda, hiszen a dokumentációban sem jelenik meg, ezzel a javadoc kapcsolókkal.

Tesztelés

Az src könyvtárban nem készítettünk App.java, Main.java vagy más osztályt amivel használjuk az InputPanelt. Ezt a test könyvtárban tesszük meg.

Készítsünk egy test könyvtárat. Vegyük fel a projekt útvonalai közzé.

Készítsünk egy main() metódust, amiben használjuk a modulunkat.

inputpanel/
|-.vscode/
|-bin/
|-lib/
|-src/
| `-hu/
| `-nagyjanos/
| `-InputPanel.java
|-test/
| `-App.java
`-README.md

A .jar fájlt készítünk a test könyvtárat nem tesszük a bele.

Link

Hivatalos dokumentáció:

https://www.oracle.com/technical-resources/articles/java/javadoc-tool.html (2022)