欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

(新手 Swing)簡單的圖片邊框提前工具(可拖放

系統 1646 0






import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.dnd.DnDConstants;
import java.awt.dnd.DragGestureEvent;
import java.awt.dnd.DragGestureListener;
import java.awt.dnd.DragGestureRecognizer;
import java.awt.dnd.DragSource;
import java.awt.dnd.DragSourceContext;
import java.awt.dnd.DragSourceDragEvent;
import java.awt.dnd.DragSourceDropEvent;
import java.awt.dnd.DragSourceEvent;
import java.awt.dnd.DragSourceListener;
import java.awt.dnd.DropTarget;
import java.awt.dnd.DropTargetDragEvent;
import java.awt.dnd.DropTargetDropEvent;
import java.awt.dnd.DropTargetEvent;
import java.awt.dnd.DropTargetListener;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.net.URL;

import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JTree;
import javax.swing.UIManager;
import javax.swing.border.Border;
import javax.swing.border.CompoundBorder;
import javax.swing.border.EmptyBorder;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.filechooser.FileNameExtensionFilter;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreePath;


import java.awt.Toolkit;


public class MyGrame extends JFrame {

??? int x1=0 ,y1=0;
int x2,y2;
??? String s;
private keyAction ka;
Image act;
??? JTextField textField;
private Clipboard board; // 剪切板
//private DataFlavor flavor;
private JPanel panel;
private JMenuBar bar;
private JMenu file;
private JFileChooser jfc;
private JMenuItem[][] items;
private URL imageUrl;
private URL image;
??? JComponent jfather;
??? JComponent canvas;
??? DragAndDropDropTargetListener listener;
public MyGrame() {
?????? canvas = new JComponent() {
???
private static final long serialVersionUID = 1L;
public void paint(Graphics g) {
update(g);
????????????? }

public void update(Graphics g) {

g.drawImage(act, 0,0, act.getWidth(null), act.getHeight(null), this);
g.setColor(Color.red);
g.drawLine(x1, 0, x1, act.getHeight(null));
g.drawString((String) ("x1=") + x1, x1, y1);
g.drawLine(x2, 0, x2, act.getHeight(null));
g.drawString((String) ("x2=") + x2, x2, y2);
g.drawLine(0, y1, act.getWidth(null), y1);
g.drawString((String) ("y1=") + y1, x2, y1);
g.drawLine(0, y2, act.getWidth(null), y2);
g.drawString((String) ("y2=") + y2, x1, y2);
repaint();
}

};
listener=new DragAndDropDropTargetListener();
listener.mygrame=this;
DropTarget dropTarget = new DropTarget(canvas, listener);
setDefaultCloseOperation(EXIT_ON_CLOSE);
panel = new JPanel();
bar = new JMenuBar();
file = new JMenu("文件");
items = new JMenuItem[3][];
imageUrl = getClass().getResource("img.PNG");
act = new ImageIcon(imageUrl).getImage();
x2=act.getWidth(null)-1;
y2=act.getHeight(null)-1;
s = "" + x1 + ',' + x2 + ',' + y1 + ',' + y2;
panel.setOpaque(true);
panel.setBackground(Color.black);
JPanel panel3 = new JPanel();
textField = new JTextField(s, 16);
textField.setFocusable(false);
panel3.add(textField);
JButton button = new JButton("復制");
button.addActionListener(new B());
button.setFocusable(false);
panel3.add(button);
setJMenuBar(bar);
panel.setLayout(new BorderLayout(0,0));
panel.add(panel3, BorderLayout.SOUTH);
canvas.setPreferredSize(new Dimension(act.getWidth(null),act.getHeight(null)));
pack();
jfather=new JComponent(){private static final long serialVersionUID = 1L;};
jfather.setLayout(new FlowLayout(FlowLayout.CENTER,0,0));
jfather.add(canvas);
panel.add(jfather);
setContentPane(panel);
ka = new keyAction();
this.addKeyListener(ka);
ka.picture = this;
addItem();
addEventHandler();

this.setVisible(true);
}

public void addItem() {
items[0] = new JMenuItem[4];
file.add(items[0][0] = new JMenuItem("打開"));// open
file.add(items[0][1] = new JMenuItem("保存"));// save
file.add(items[0][2] = new JMenuItem("保存 到..."));// save as
file.addSeparator();
file.add(items[0][3] = new JMenuItem("關閉"));// exit
if (board != null) {
items[1][2].setEnabled(true);// paste is enable
}
bar.add(file);
}

public void addEventHandler() {

items[0][0].addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {
JFileChooser jfc = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter(
"jpg & PNG Images", "jpg", "png");
jfc.setFileFilter(filter);
int returnVal = jfc.showOpenDialog(null);
if (returnVal == JFileChooser.APPROVE_OPTION) {
try {
act = ImageIO.read(jfc.getSelectedFile());
x2=act.getWidth(null)-1;
y2=act.getHeight(null)-1;
??? setSize(act.getWidth(null),act.getHeight(null));
jfather.setSize(act.getWidth(null),act.getHeight(null));
canvas.setPreferredSize(new Dimension(act.getWidth(null),act.getHeight(null)));
pack();
setResizable(false);
s = "" + x1 + ',' + x2 + ',' + y1 + ',' + y2;
textField.setText(s);
repaint();
} catch (IOException e1) {
e1.printStackTrace();
}
}

}
});

items[0][1].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFileChooser jfc = new JFileChooser();
jfc.showSaveDialog(null);
}
});

items[0][2].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFileChooser jfc = new JFileChooser();
jfc.showSaveDialog(null);
}
});

items[0][3].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});

}

protected static void setClipboardText(Clipboard clip, String writeMe) {
Transferable tText = new StringSelection(writeMe);
clip.setContents(tText, null);
}


public static void main(String[] args) {
? try {
??????????? UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
??????? } catch (Exception e1) {
??????????? e1.printStackTrace();
??????? }
MyGrame picture = new MyGrame();
picture.pack();

picture.setResizable(false);
picture.addWindowListener(new WindowAdapter() {

??????????? @Override
??????????? public void windowClosed(WindowEvent e) {
??????????????? System.exit(0);
??????????? }
??????? });
picture.setVisible(true);
}


class B implements ActionListener {
public void actionPerformed(ActionEvent e) {
board = Toolkit.getDefaultToolkit().getSystemClipboard();
setClipboardText(board, s);
}

}

class keyAction implements KeyListener {
MyGrame picture;
boolean up;
boolean down;
boolean right;
boolean left;

public void keyPressed(KeyEvent e) {

int onmask = KeyEvent.SHIFT_DOWN_MASK;
if (e.getModifiersEx() == onmask && (e.getKeyCode() != 0)) {
switch (e.getKeyCode()) {
case 38:
up = true;
break;
case 40:
down = true;
break;
case 37:
right = true;
break;
case 39:
left = true;
break;
}
if (up == true) {
if(y1>0)
picture.y1 -= 1;
}
if (down == true) {
if(y1<picture.act.getHeight(null)-1)
picture.y1 += 1;
}
if (right == true) {
if(x1>0)
picture.x1 -= 1;
}
if (left == true) {
if(x1<picture.act.getWidth(null)-1)
picture.x1 += 1;
}
} else {

switch (e.getKeyCode()) {
case 38:
up = true;
break;
case 40:
down = true;
break;
case 37:
right = true;
break;
case 39:
left = true;
break;
}
if (up == true) {
if(y2>0)
picture.y2 -= 1;
}
if (down == true) {
if(y2<picture.act.getHeight(null)-1)
picture.y2 += 1;
}
if (right == true) {
if(x2>0)
picture.x2 -= 1;
}
if (left == true) {
if(x2<picture.act.getWidth(null)-1)
picture.x2 += 1;
}
}
picture.s = "" + x1 + ',' + x2 + ',' + y1 + ',' + y2;
picture.textField.setText(s);
}

@Override
public void keyReleased(KeyEvent e) {
switch (e.getKeyCode()) {
case 38:
up = false;
break;
case 40:
down = false;
break;
case 37:
right = false;
break;
case 39:
left = false;
break;
}
}

@Override
public void keyTyped(KeyEvent e) {

}

}


}
class DragAndDropDropTargetListener implements DropTargetListener{
MyGrame mygrame;
java.util.List? img;
??? public void dragEnter(DropTargetDragEvent e){
??? DataFlavor javaFileListFlavor = DataFlavor.javaFileListFlavor;
??? try {
??? img=(java.util.List) e.getTransferable().getTransferData(javaFileListFlavor);
} catch (UnsupportedFlavorException e1) {
// TODO Auto-generated catch block?????????????????????????????????????????????????????????????????????
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
??? }
??? public void dragOver(DropTargetDragEvent dtde){
??? }
??? public void dropActionChanged(DropTargetDragEvent dtde){
??? }
??? public void dragExit(DropTargetEvent dte){
??? }
??? public void drop(DropTargetDropEvent e){
??? ??????
??????????????? try {
??????????????? mygrame.act =ImageIO.read((File) img.get(0));
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
??????????????? mygrame.y2=mygrame.act.getHeight(null)-1;
??????????????? mygrame.x2=mygrame.act.getWidth(null)-1;
??????????????? mygrame.setSize(mygrame.act.getWidth(null),mygrame.act.getHeight(null));
??????????????? mygrame.jfather.setSize(mygrame.act.getWidth(null),mygrame.act.getHeight(null));
??????????????? mygrame.canvas.setPreferredSize(new Dimension(mygrame.act.getWidth(null),mygrame.act.getHeight(null)));
??????????????? mygrame.pack();
??????????????? mygrame.setResizable(false);
??????????????? mygrame.s = "" + mygrame.x1 + ',' + mygrame.x2 + ',' + mygrame.y1 + ',' + mygrame.y2;
??????????????? mygrame.textField.setText(mygrame.s);
??????????????? mygrame.repaint();
??????????? }
??????
??????? }

(新手 Swing)簡單的圖片邊框提前工具(可拖放)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日韩精品欧美一区二区三区 | www.五月婷婷| 精品无码中出一区二区 | 久久3| 国产玖玖 | 色男人的天堂久久综合 | 中文字幕第一页在线 | 亚洲欧美一区二区三区综合 | 午夜影视 | 久草大| 成人免费视频观看视频 | 欧美精品在线视频观看 | 国产不卡视频在线 | 欧美视频观看 | 欧美在线亚洲 | 日韩一级a毛片欧美一级 | 欧美a视频在线观看 | 男女性关系视频免费观看软件 | 草草网站 | 91精品国产一区二区 | 亚洲一区美女 | 欧美成人久久 | 久久久一区二区三区精品 | 青青青青手机在线视频观看国产 | 免费午夜视频 | 国产毛片片精品天天看视频 | 日本高清天码一区在线播放 | 天天操天天射天天舔 | 午夜大片免费男女爽爽影院久久 | 羞羞哒哒视频 | 91视频首页| 久久久www成人免费精品张筱雨 | 最新久久免费视频 | 日本久久中文字幕 | 亚洲国产精品久久久久秋霞蜜臀 | 国产婷婷综合 | 毛片毛片毛片毛片毛片毛片 | 国产人妻互换一区二区水牛影视 | 亚洲 欧美 另类 综合 偷拍 | 精品视频 | 黄色羞羞视频在线观看 |