Tartalomjegyzék

< Java

Java library

Az InputPanel 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.

src/hu/nagyjanos/InputPanel.java
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

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

src/hu/nagyjanos/InputPanel.java
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.

Hivatalos dokumentáció: