在二十個像素內,它被認為是水平的。
看壹看。
還好妳是按著鼠標移動的,如果只是移動鼠標就麻煩了。
-
導入Java . awt . graphics;
導入Java . awt . mouse info;
導入Java . awt . point;
導入Java . awt . event . action event;
導入Java . awt . event . action listener;
導入Java . awt . event . mouse event;
導入Java . awt . event . mouse listener;
導入Java . io . file;
導入javax . swing . image icon;
導入javax . swing . jbutton;
導入javax . swing . jfile chooser;
導入javax . swing . jframe;
導入javax . swing . jpanel;
導入javax . swing . file chooser . filenameextensionfilter;
公共類App擴展JFrame實現MouseListener,ActionListener {
int x = 0;
int y = 0;
file[]selected files = null;
int file index = 0;
int width = 200
int height = 200
公共應用(){
setDefaultCloseOperation(EXIT _ ON _ CLOSE);
setLocationRelativeTo(null);
setSize(400,300);
setResizable(false);
getContentPane()。set layout(null);
JPanel panel = new image panel();
panel.setBounds(12,40,370,218);
getContentPane()。添加(面板);
addmouse listener(this);
JButton BTN Browse = new JButton(" Browse ");
BTN browse . addactionlistener(this);
btnBrowse.setBounds(12,9,91,21);
getContentPane()。添加(BTN browse);
set visible(true);
}
公共靜態void main(String[] args) {
新App();
}
public void action performed(action event e){
jfile chooser chooser = new jfile chooser();
chooser . setmultiselectenabled(true);
FileNameExtensionFilter filter = new FileNameExtensionFilter(
JPG & amp;GIF圖片”、“jpg”、“GIF”);
//設置文件類型
chooser.setFileFilter(過濾器);
//打開選擇器面板
int return val = chooser . showopendialog(this);
if (returnVal == JFileChooser。APPROVE_OPTION) {
selected files = chooser . getselected files();
repaint();
}
}
public void mouse clicked(mouse event e){
}
public void mouse enter(mouse event e){
}
public void mouse exited(mouse event e){
}
public void mouse pressed(mouse event e){
point point = mouse info . getpointerinfo()。get location();
x = point.x
y = point.y
}
public void mouse released(mouse event e){
point point = mouse info . getpointerinfo()。get location();
int thisX = point.x
int thisY = point.y
system . out . println(" thisX = "+thisX+" "+" thisY = "+thisY);
如果((y-thisY & lt;20 & amp& ampy-thisY & gt;0)
| |(y-thisY & lt;0 & amp& ampy-thisY & gt;-20)) {
// Y在20°範圍內移動被認為是水平移動。
if(x & lt;thisX) {
//右
if (selectedFiles!=空
& amp& ampfileIndex & ltselectedFiles.length - 1) {
file index++;
}
}否則{
//左側
if (selectedFiles!= null & amp& ampfileIndex & gt0) {
文件索引-;
}
}
}否則{
if(x & lt;thisX) {
//右下方
寬度+= 20;
高度+= 20;
}否則{
//左上角
寬度-= 20;
高度-= 20;
}
}
repaint();
}
ImagePanel類擴展JPanel {
公共空白油漆(圖形g) {
super.paint(克);
if (selectedFiles!= null) {
image icon icon = new image icon(selected files[file index]
。getPath());
g.drawImage(icon.getImage(),0,0,width,height,this);
}
}
}
}