Kategoriler
Java

Java Swing Programlama

apuntes_de_java-logo

Diğer dersleri gördünüz mü? https://selimkaratas.com.tr/java-se-ders-notlari

Java’nın grafik arayüzünü kullanabileceğimiz bir ortamdır. Java FX gibi ortamlarda da Desktop ortamına projeler geliştirebiliriz. Biz biraz daha eski teknoloji olan Swing kısmına değineceğiz. Örneklerle zenginleştireceğimiz bazı

Komponent sınıflara yakından bakalım.

JButton: Mouse ile tıklandığında çeşitli eventleri gerçekleştirir.

JLabel: Değiştirilemeyen yazı ve ikonları oluşturan etiketler yapılmasını sağlar

JCheckBox: İstenildiği kadar seçim yapılabilen seçimli alanların oluşturulmasını sağlar.

JRadioButton: Sadece tek seçim imkanı sunan ortam oluşturmamızı sağlar.

JComboBox: Kullanıcıya açılabilir menüler sunar. Yine tek seçim imkanı vardır.

JList: Çoklu seçim sunan comboBox gibi düşünebiliriz.

JTextField: Kullanılar tarafından veri girişi sağlayan alandır

JTextArea: Textfield ile aynı işlemi görür ancak farkı çoklu satırda metin girişine izin vermesidir.

Basitçe bir frame oluşturalım.  Arayüze geçiş yapmadan kodlama ile oluşturacağız.

public static void main ( String[] args )
 {
 JFrame pencere = new JFrame ("Penceremiz");

/* jFrame sınıfından pencere isimli bir nesne oluşturduk ve ekrana penceremiz ismiyle geldi */

 pencere.setSize(400,400);

// en boy olarak pixel cinsinden girdik

 pencere.setLocationRelativeTo(null);
// pencere ekranda nerede görülecek. null dersek ortalar

 pencere.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// pencere kapatıldığında uygulamadan çıkılsın

 pencere.setVisible(true);
// penceremizin ekranda görünmesi için

JButton buton = new JButton("TAMAM");
// JButon sınıfından bir buton nesnesi oluşturduk

pencere.add(buton);
// butonu add metodu ile penceremize ekliyoruz
 }

Bir adet Textfield ve bir adet Password Field oluşturuyoruz. Bunların değişken isimlerini txtAdi ve txtParola olarak değiştiriyoruz. Bir adet buton ve 3 adet label ekliyoruz. Sonuçların görünmesini istediğim Label ismini lblYaz olarak değiştiyoruz. Eğer textfield alanları boş geçilirse uyarı mesajlarını label’a yazmasını istiyoruz. Hangi kısım boş geçilirse o kısma odaklanmasını sağlıyoruz.

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)
{ 
String adi = txtAdi.getText();
String parola = txtParola.getText();

if ("".equals(parola) && "".equals(adi)) {
lblYaz.setText("Adınızı ve Parolanızı Boş geçemezsiniz");
txtAdi.requestFocusInWindow();

} else if ("".equals(adi)) {
lblYaz.setText("Adınızı Boş geçemezsiniz");
txtAdi.requestFocusInWindow();

} else if ("".equals(parola)) {
lblYaz.setText("Parolanızı Boş geçemezsiniz");
txtParola.requestFocusInWindow();

} else {
lblYaz.setText(adi + "-" + parola);
} }

Toggle Button Özelliği Butonu tıkladığımızda tıklanmış halde kalır. Bu durumlara özel işlemler yaparız. Biz aşağıda butona tıkladığımızda seçili ya da seçili olmadığını söylüyoruz.

private void buttonActionPerformed(java.awt.event.ActionEvent evt) {

JToggleButton button= (JToggleButton) evt.getSource ();

if ( button.isSelected()) {
button.setText ("seçildi");

}else {

button.setText("Seçilmedi");
 }
}

Şimdi listeye olan bir değişkenin sırasını, kendisini ve toplam satır sayısını ekrana yazdırdığımız bir uygulama yapalım. Bunun için formumuza 1 tane jList, 3 tane jLabel, 1 tane jButton, ekleyip butonun tıklanma evet’ine göre işlemler yaptırıyoruz. Ama onun öncesinde yeni bir JPanel Form oluşturuyoruz.

jformpanel

Label’ların renklendirmesi için Label seçili iken properties kısmından opaque kısmını aktif hale getiriyoruz.

opaque

Listemize item’leri eklemek için aşağıdaki properties kısmına ulaşabiliriz.

jlist item

Butonun action performend eventi ile aşağıdaki işlemleri yaptırıyoruz.

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { 
 String selected = jList1.getSelectedValue().toString();
 jLabel3.setText(selected);
 /* seçilen hücreyi bize value olarak gelir biz strig'e çevirip yazdırdık */

 jLabel1.setText("Sırası:"+String.valueOf(jList1.getSelectedIndex()+1));
 // yapılan seçimin sırasını gösterir.

jLabel2.setText("Toplam Satır:"+     String.valueOf(jList1.getModel().getSize()));
 // toplam satırı verir.

 }

Uygulamamızın görünümü:

comboBox listBox

 

Diğer örnek uygulamalara github hesabımdan ulaşabilirsiniz.

https://github.com/sekaist/Java_Swing_Examples

 

“Java Swing Programlama” için bir yanıt

bir evrak editör yapmaya çalışıyorum ancak yerleştirdiğim tüm nesneler ya ekranı kaplıyor yada diğer bir nesnenin üzerine biniyor koduma bakarak hatamı söyleyebilir misiniz? İlginiz için şimdiden teşekkür ederim.

package javaapplication1;

import java.awt.Font;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;

public class JavaApplication1 {
public static void main(String[] args) {

Font font= new Font(“TimesRoman”, Font.BOLD, 18);

JFrame anasayfa= new JFrame();
anasayfa.setSize(1366, 768);
anasayfa.setTitle(“Evrak Editör”);
anasayfa.setVisible(true);
anasayfa.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JButton btn1= new JButton(“Uyg. İkonu”);
anasayfa.add(btn1);
btn1.setSize(75, 75);
btn1.setLocation(0, 0);
btn1.setVisible(true);

JTabbedPane tp1= new JTabbedPane();
anasayfa.add(tp1);
tp1.setSize(1271, 75);
tp1.setLocation(75, 0);
tp1.setVisible(true);

JPanel pnl1= new JPanel();
tp1.add(pnl1);
pnl1.setSize(1271, 75);
pnl1.setLocation(0, 0);
pnl1.setVisible(true);

}

}

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir