Netbeans Swing ile GUI Tasarlamak (örnek kodlu)

Posew7

Üye
29 Eki 2018
51
3
GUI (Grafiksel Kullanıcı Arayüzü) Nedir
GUI elektronik cihazların simgeler, ikonlar ve diğer görsel grafikler yardımıyla kullanmasına yardımcı olması amacıyla geliştirilmiş tasarımlardır.

Swing Kütüphanesi Hakkında
Swing kütüphanesi Sun Microsystems tarafından piyasaya sürülen resmi Java GUI aracıdır, %100 java ile yazılmıştır.Tam donanımlı masaüstü uygulamaları geliştirmek için kullanılan paketler bütünüdür.

Eclipse ile GUI proje yapılmak istendiğinde ek paketler kurulması gerekmektedir, Netbeans de ise bu paketler kurulum ile gelmekte. O yüzden Netbeans ile proje oluşturmayı göstereceğim.



















Palette yazan bölümde kullanılan bileşenler bulunmakta, önce kullanılmak istenilen bileşene sonra da arayüzde konulmak istenilen yere tıklanarak kullanılır.

Bazı bileşenlerin görevi


Label : Ekranda yazı, resim veya hem yazı hem resim göstermek için kullanılan bileşendir.
Button : Adından da anlaşılacağı gibi tıklamak için kullanılan bileşendir.
Text Field : Kullanıcının bilgi girmesi için kullanılan bileşendir.
Password Field : Kullanıcının girdiği bileşini yıldızlı karakter olarak gösteren bileşendir.



Örnek Proje

30 saniye boyunca butona kaç kere tıklandığını sayan bir proje paylaşacağım.

kodların bir kısmı sansürlenmiştir https://github.com/Posew7/GUI.git burdan orjinal kodlara ulaşabilirsiniz.

Kod:
package org.turkhackteam;

public class tikla extends javax.swing.JFrame {

    private int sayac;
    //1000 miliseconds = 1 second
    private final long TOPLAM_SURE = 1000 * 30;
    private long basZaman;
    private long gecenZaman;

    public tikla() {
        initComponents();
        set********RelativeTo(null);       // GUI'yi ekranın ortasında başlatır
        sayac = 0;
        label.setText(String.valueOf(sayac));
        basZaman = -1;
    }

    [USER=732949]Sup[/USER]pressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private **** initComponents() {

        jButton1 = new javax.swing.JButton();
        label = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Turk Hack Team");

        jButton1.setFont(new java.awt.Font("Tahoma", 0, 29)); // NOI18N
        jButton1.setText("BAS");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public **** actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        label.setFont(new java.awt.Font("Tahoma", 0, 29)); // NOI18N

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap(101, Short.MAX_VALUE)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 201, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(98, 98, 98))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addComponent(label, javax.swing.GroupLayout.PREFERRED_SIZE, 115, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(112, 112, 112))))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(29, 29, 29)
                .addComponent(label, javax.swing.GroupLayout.PREFERRED_SIZE, 54, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(29, 29, 29)
                .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 112, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(76, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private **** jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed

        if (basZaman < 0) {
            basZaman = System.currentTimeMillis();
        } else {
        }

        gecenZaman = System.currentTimeMillis() - basZaman;

        sayac = sayac + 1;
        label.setText(String.valueOf(sayac));

        gecenZaman = System.currentTimeMillis() - basZaman;

        if (gecenZaman >= TOPLAM_SURE) {
            jButton1.setEnabled(false);
        } else {
        }

    }//GEN-LAST:event_jButton1ActionPerformed

    public static **** main(String args[]) {

        java.awt.EventQueue.invokeLater(new Runnable() {
            public **** run() {
                new tikla().setVisible(true);
            }
        });
    }


    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel label;
    // End of variables declaration//GEN-END:variables
}



Projeyi exe haline getirmek isterseniz [ame="https://www.youtube.com/watch?v=tARIrxbF-ZA"]https://www.youtube.com/watch?v=tARIrxbF-ZA[/ame] burdan yardım alabilirsiniz.
 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.