カット&ペースト可能な簡易グラフィックツール
では、実際にこれらのメソッドを実装して、簡単なプログラムを作成してみましょう。ここでは、イメージのカット&ペーストをもった、超簡易グラフィックツールを作成してみました。
package jp.allabout;
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
import javax.swing.*;
public class SampleApp extends JFrame {
private GPanel panel;
public SampleApp(){
this.setSize(300, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panel = new GPanel();
this.add(panel,BorderLayout.CENTER);
this.createMenuBar();
}
private void createMenuBar(){
JMenuBar bar = new JMenuBar();
JMenu menu1 = new JMenu("File");
JMenuItem quititem = new JMenuItem("Quit");
quititem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.exit(0);
}
});
menu1.add(quititem);
bar.add(menu1);
JMenu menu2 = new JMenu("Edit");
JMenuItem cutitem = new JMenuItem("Cut");
cutitem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
panel.cut();
}
});
JMenuItem copyitem = new JMenuItem("Copy");
copyitem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
panel.copy();
}
});
JMenuItem pasteitem = new JMenuItem("Paste");
pasteitem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
panel.paste();
}
});
menu2.add(cutitem);
menu2.add(copyitem);
menu2.add(pasteitem);
bar.add(menu2);
this.setJMenuBar(bar);
}
public static void main(String[] args) {
new SampleApp().setVisible(true);
}
}