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.
Label’ların renklendirmesi için Label seçili iken properties kısmından opaque kısmını aktif hale getiriyoruz.
Listemize item’leri eklemek için aşağıdaki properties kısmına ulaşabiliriz.
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ü:
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);
}
}