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.
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.
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.
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: