import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class ImagePrint extends JComponent implements Runnable{
private Image image;
private int x,y,w,h;
private MediaTracker mt=new MediaTracker(this);
private Graphics graphics;
public ImagePrint(){
image=Toolkit.getDefaultToolkit().getImage(\"test/111.jpg\");
mt.addImage(image,0);
w=image.getWidth(this);
h=image.getHeight(this);
new Thread(this).start();
}
public Graphics returnInfo(){
return graphics;
}
public void run(){
while(true){
mt.checkID(0,true);
try{
Thread.sleep(1000);
}catch(InterruptedException e){}
repaint();
}
}
public void paint(Graphics g){
if(mt.checkID(0)){
g.drawImage(image, x, y, w, h, 0, 0,image.getWidth(null),image.getHeight(null),this);
}
else{
g.drawString(\"Not Yet!\", 100, 100);
}
graphics = g;
}
public void setting(int x,int y,int w,int h){
this.x=x; this.y=y;
this.w=w; this.h=h;
}
public Image returnImage(){
return image;
}
}
public class ImagePrintEx extends JFrame implements ActionListener{
private JMenuBar jmb=new JMenuBar();
private JMenu jm=new JMenu(\"옵션\");
private JMenuItem jmi=new JMenuItem(\"기준그림\");
private JMenuItem jmi1=new JMenuItem(\"상하반전\");
private JMenuItem jmi2=new JMenuItem(\"좌우반전\");
private JMenuItem jmi3=new JMenuItem(\"프린트하기\");
private ImagePrint is=new ImagePrint();
public ImagePrintEx(){
super(\"ImagePrintEx\");
jm.add(jmi); jm.add(jmi1);
jm.add(jmi2); jm.add(jmi3);
jmi.addActionListener(this); jmi1.addActionListener(this);
jmi2.addActionListener(this); jmi3.addActionListener(this);
jmi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_1,ActionEvent.ALT_MASK));
jmi1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_2,ActionEvent.ALT_MASK));
jmi2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_3,ActionEvent.ALT_MASK));
jmi3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_4,ActionEvent.ALT_MASK));
jmb.add(jm);
setJMenuBar(jmb);
Container con=getContentPane();
con.setLayout(new BorderLayout());
con.add(\"Center\",is);
setSize(510,800); setVisible(true);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==jmi){
Image ii=is.returnImage();
is.setting(0, 0, ii.getWidth(null), ii.getHeight(null));
is.repaint();
}
else if(e.getSource()==jmi1){
Image ii=is.returnImage();
is.setting(0,ii.getWidth(null), ii.getHeight(null),0);
is.repaint();
}
else if(e.getSource()==jmi2){
Image ii=is.returnImage();
is.setting(ii.getWidth(null),0, 0, ii.getHeight(null));
is.repaint();
}
else if(e.getSource()==jmi3){
PrintJob pj=Toolkit.getDefaultToolkit().getPrintJob(this, \"Grim\", null);
Graphics printGraphics = pj.getGraphics();
printGraphics.drawImage(is.returnImage(),0,0,is.returnImage().getWidth(null),is.returnImage().getHeight(null),this);
printGraphics.dispose();
pj.end();
}
}
public static void main(String[] args){
new ImagePrintEx();
}
}
되는지안되는지 알수가있어야지!
굵은 글씨 경로만 잘지정해서 해줘봐..
import java.awt.event.*;
import javax.swing.*;
class ImagePrint extends JComponent implements Runnable{
private Image image;
private int x,y,w,h;
private MediaTracker mt=new MediaTracker(this);
private Graphics graphics;
public ImagePrint(){
image=Toolkit.getDefaultToolkit().getImage(\"test/111.jpg\");
mt.addImage(image,0);
w=image.getWidth(this);
h=image.getHeight(this);
new Thread(this).start();
}
public Graphics returnInfo(){
return graphics;
}
public void run(){
while(true){
mt.checkID(0,true);
try{
Thread.sleep(1000);
}catch(InterruptedException e){}
repaint();
}
}
public void paint(Graphics g){
if(mt.checkID(0)){
g.drawImage(image, x, y, w, h, 0, 0,image.getWidth(null),image.getHeight(null),this);
}
else{
g.drawString(\"Not Yet!\", 100, 100);
}
graphics = g;
}
public void setting(int x,int y,int w,int h){
this.x=x; this.y=y;
this.w=w; this.h=h;
}
public Image returnImage(){
return image;
}
}
public class ImagePrintEx extends JFrame implements ActionListener{
private JMenuBar jmb=new JMenuBar();
private JMenu jm=new JMenu(\"옵션\");
private JMenuItem jmi=new JMenuItem(\"기준그림\");
private JMenuItem jmi1=new JMenuItem(\"상하반전\");
private JMenuItem jmi2=new JMenuItem(\"좌우반전\");
private JMenuItem jmi3=new JMenuItem(\"프린트하기\");
private ImagePrint is=new ImagePrint();
public ImagePrintEx(){
super(\"ImagePrintEx\");
jm.add(jmi); jm.add(jmi1);
jm.add(jmi2); jm.add(jmi3);
jmi.addActionListener(this); jmi1.addActionListener(this);
jmi2.addActionListener(this); jmi3.addActionListener(this);
jmi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_1,ActionEvent.ALT_MASK));
jmi1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_2,ActionEvent.ALT_MASK));
jmi2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_3,ActionEvent.ALT_MASK));
jmi3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_4,ActionEvent.ALT_MASK));
jmb.add(jm);
setJMenuBar(jmb);
Container con=getContentPane();
con.setLayout(new BorderLayout());
con.add(\"Center\",is);
setSize(510,800); setVisible(true);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==jmi){
Image ii=is.returnImage();
is.setting(0, 0, ii.getWidth(null), ii.getHeight(null));
is.repaint();
}
else if(e.getSource()==jmi1){
Image ii=is.returnImage();
is.setting(0,ii.getWidth(null), ii.getHeight(null),0);
is.repaint();
}
else if(e.getSource()==jmi2){
Image ii=is.returnImage();
is.setting(ii.getWidth(null),0, 0, ii.getHeight(null));
is.repaint();
}
else if(e.getSource()==jmi3){
PrintJob pj=Toolkit.getDefaultToolkit().getPrintJob(this, \"Grim\", null);
Graphics printGraphics = pj.getGraphics();
printGraphics.drawImage(is.returnImage(),0,0,is.returnImage().getWidth(null),is.returnImage().getHeight(null),this);
printGraphics.dispose();
pj.end();
}
}
public static void main(String[] args){
new ImagePrintEx();
}
}
되는지안되는지 알수가있어야지!
굵은 글씨 경로만 잘지정해서 해줘봐..
댓글 0