import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Eylem01 extends JFrame{
//swing actions
private Action acAc;
private Action acKaydet;
private Action acSil;
private Action acCikis;
public Eylem01(){
super("Eylemleri Kullanıyoruz.");
acAc();
acKapa();
acKaydet();
acSil();
//create File menu
JMenu dosyaMenu = new JMenu("Dosya");
//add sample Action and exitAction to File menu to create JMenuItem for each Action
dosyaMenu.add(acAc);
dosyaMenu.add(acKaydet);
dosyaMenu.add(acSil);
dosyaMenu.add(acCikis);
dosyaMenu.setMnemonic('M');
//JMenubar ile menuCubuk yaratıyoruz
JMenuBar menuCubuk = new JMenuBar();
//dosya menüsünde bulunan tüm eylemleri bir seferde menü çubuğuna atıyoruz.
menuCubuk.add(dosyaMenu);
setJMenuBar(menuCubuk);
//eylemCubuğu yaratıyoruz new JToolBar
JToolBar eylemCubuk = new JToolBar();
//Eylem çubuğunda (toolBar) görünmesini istediğimiz eylemleri tek tek ekliyoruz.
eylemCubuk.add(acAc);
eylemCubuk.add(acKaydet);
eylemCubuk.add(acCikis);
// pencerede düğme tanımlıyoruz ve düğmelere yaratmış olduğumuz eylemleri atıyoruz.
// bu örnekte önce yaratıyoruz sonra eylemi atıyoruz
JButton btnAc = new JButton();
btnAc.setAction(acAc);
//Bu örnekte ise yaratma esnasında eylemimizi atıyoruz
JButton btnKaydet = new JButton(acKaydet);
//Layout Katman panelinin yaratıyoruz
JPanel dugmePaneli = new JPanel();
dugmePaneli.add(btnAc);
dugmePaneli.add(btnKaydet);
//Sıra eylem çubuğunu ve düğme panelini pencerinin içerik (container) yönetime atamaya geldi.
Container icerik = getContentPane();
icerik.add(eylemCubuk,BorderLayout.NORTH);
icerik.add(dugmePaneli,BorderLayout.CENTER);
}
private void acAc(){
//acAc icin soyut bir sınıf tanımlıyor ve atıyoruz. AbstractActiondan turemis oluyor.
acAc = new AbstractAction(){
public void actionPerformed(ActionEvent event){
//Eylemin cagrildigina dair mesaj gösteriyoruz.
// bu bölümde dosya acma islemi gelmeli normalde.
JOptionPane.showMessageDialog(Eylem01.this, "Dosya Acma İşlemi Çağrıldı");
//Programdan çıkış işlemini aktif hale getiriyoruz. Ki bu eylemi bir yaratmıştık
acCikis.setEnabled(true);
}
};
//Eylemimize bir isim atıyoruz
acAc.putValue(Action.NAME, "Dosya Acma");
//Eylemimize bir ikon atıyoruz
//acAc.putValue(Action.SMALL_ICON, new ImageIcon(getClass().getResource("images/Cikis.bmp")));
//Eylem hakkında kısa bir açıklama yapıyoruz. Fare üzerine geldiğinde bu bilgi görünecek.
acAc.putValue(Action.SHORT_DESCRIPTION, "Dosya açma eylemi.");
//Eylem için kısa yol tuşu tanımlıyoruz.
acAc.putValue(Action.MNEMONIC_KEY,new Integer('A'));
}
private void acKaydet(){
//acKaydet icin soyut bir sınıf tanımlıyor ve atıyoruz. AbstractActiondan türemiş oluyor.
acKaydet = new AbstractAction(){
public void actionPerformed(ActionEvent event){
//Eylemin cagrildigina dair mesaj gösteriyoruz.
// bu bölümde dosya acma islemi gelmeli normalde.
JOptionPane.showMessageDialog(Eylem01.this, "Dosya Kaydetme İşlemi Çağrıldı");
//Programdan çıkış işlemini aktif hale getiriyoruz. Ki bu eylemi bir yaratmıştık
acCikis.setEnabled(true);
}
};
//Eylemimize bir isim atıyoruz
acKaydet.putValue(Action.NAME, "Dosya Kaydetme");
//Eylemimize bir ikon atıyoruz
//acKaydet.putValue(Action.SMALL_ICON, new ImageIcon(getClass().getResource("images/Kaydet.bmp")));
//Eylem hakkında kısa bir açıklama yapıyoruz. Fare üzerine geldiğinde bu bilgi görünecek.
acKaydet.putValue(Action.SHORT_DESCRIPTION, "Dosya kaydetme eylemi .");
//Eylem için kısa yol tuşu tanımlıyoruz.
acKaydet.putValue(Action.MNEMONIC_KEY,new Integer('K'));
}
private void acSil(){
//acSil icin soyut bir sınıf tanımlıyor ve atıyoruz. AbstractActiondan türemiş oluyor.
acSil = new AbstractAction(){
public void actionPerformed(ActionEvent event){
//Eylemin cagrildigina dair mesaj gösteriyoruz.
// bu bölümde dosya acma islemi gelmeli normalde.
JOptionPane.showMessageDialog(Eylem01.this, "Dosya Silme İşlemi Çağrıldı");
//Programdan çıkış işlemini aktif hale getiriyoruz. Ki bu eylemi bir yaratmıştık
acCikis.setEnabled(true);
}
};
//Eylemimize bir isim atıyoruz
acSil.putValue(Action.NAME, "Dosya Silme");
//Eylemimize bir ikon atıyoruz
//acSil.putValue(Action.SMALL_ICON, new ImageIcon(getClass().getResource("images/Sil.bmp")));
//Eylem hakkında kısa bir açıklama yapıyoruz. Fare üzerine geldiğinde bu bilgi görünecek.
acSil.putValue(Action.SHORT_DESCRIPTION, "Dosya Silme eylemi .");
//Eylem için kısa yol tuşu tanımlıyoruz.
acSil.putValue(Action.MNEMONIC_KEY,new Integer('S'));
}
private void acKapa(){
//Programdan çıkış eylemi tanımlıyoruz
acCikis = new AbstractAction(){
public void actionPerformed(ActionEvent event){
//Programdan cikis işlemi çağrıldı
JOptionPane.showMessageDialog(Eylem01.this, "Programdan cikiyoruz...");
System.exit(0);
}
};
//Çıkış eylemimimiz için isim atıyoruz
acCikis.putValue(Action.NAME, "Cikis Islemi");
//Çıkış eylemimize ikon atıyoruz.
//.putValue(Action.SMALL_ICON, new ImageIcon(getClass().getResource("images/Cikis.bmp")));
//Çıkış eylemimize açıklama ekliyoruz
acCikis.putValue(Action.SHORT_DESCRIPTION, "Programdan Çıkıyorsunuz..");
//set Action mnemonic key
acCikis.putValue(Action.MNEMONIC_KEY,new Integer('C'));
//disbale exitAction
acCikis.setEnabled(false);
}
public static void main(String[] args) {
// pencerimizi yaratıyoruz.
Eylem01 pencereEditor = new Eylem01();
//penceremize kapama eylemi atıyoruz
pencereEditor.setDefaultCloseOperation(EXIT_ON_CLOSE);
// atanan komponentlerin büyüklüğü kadar, otomatik olarak penceremizin boyutunu belirliyoruz.
pencereEditor.pack();
pencereEditor.setVisible(true);
}
}
acSil.putValue(Action.SMALL_ICON, new ImageIcon(getClass().getResource("images/Sil.bmp")));
satırında olduğu gibi Sil.bmp ikonunu bulamadığı için hata veriyor.İkan verilen satırları yorum satırı haline getirirsen sorun çözülür.....
|