宾馆小房间装修图片:java编程,急,急!!!!

来源:百度文库 编辑:高校问答 时间:2024/04/30 06:00:26
课题规模要求
(1) 题目涉及的自定义类应不少于2个。
(2) 题目涉及的主要功能模块应不少于3个。
(3) 数据的存储可直接存到内存或使用文件,也可以使用数据库。
(4) 用户界面可以是命令行方式下(要求做成菜单形式),也可以采用图形界面,界面个数至少2个。
编程内容:
编程制作一个图像浏览器,图片从是本地硬盘装载的。要求能够前翻、后翻、放大、缩小、一屏幕上显示多幅图片且可以随便点击放大、选中图片中的区域进行复制和粘贴,自己设定放大和缩小的比例。
tojava118: 感谢你的帮助,但是程序运行不出来呀!

//对于透明gif有效
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class SwingPic extends JFrame
{

// Picture file name
protected String filename = "", lastDir;
protected ImageIcon image;
Image im;
int height, width, count = 0;
JLabel labeledPic;
JScrollPane scroller;
Container content;

// Constructor
public SwingPic()
{

// Select local system look and feel
try
{
UIManager.setLookAndFeel(UIManager.
getCrossPlatformLookAndFeelClassName());
}
catch (Exception e)
{
}

// End program when window closes
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);}
}
);

setTitle("MJF Image Viewer");
MenuBar mbar = new MenuBar();
Menu m = new Menu("File");
m.add(new MenuItem("Open"));
m.add(new MenuItem("Exit"));
mbar.add(m);
setMenuBar(mbar);
setSize(800, 600);

}
// Load image from file

public void swingdraw()
{
if(count==1) //load new image how to despote image before
{ // Create a label to hold the image as an icon
labeledPic = new JLabel(image, JLabel.CENTER);
labeledPic.setText(filename);

// Create a scroller to hold the labeled image
scroller = new JScrollPane(labeledPic);
scroller.setPreferredSize(new Dimension(height, width));

// Add the scroller to the frame's content layer
content = getContentPane();
content.add(scroller);
this.show();
// Sets window's initial size
//repaint();
}
else if(count>1) //第二次就无法更新了,请大家看看如何实现可以更新。

{ // image.setImage();
labeledPic = new JLabel(image, JLabel.CENTER);
labeledPic.setText(filename);

System.out.println("new jlabel ");

// Create a scroller to hold the labeled image
scroller = new JScrollPane(labeledPic);
scroller.setPreferredSize(new Dimension(height, width));

//Let the scroll pane know to update itself
//and its scroll bars.
scroller.revalidate();
// content = getContentPane();
// content.add(scroller);
scroller.repaint();
// this.show();

}
}

public boolean action(Event evt, Object arg)
{
if(arg.equals("Open"))
{
FileDialog d =
new FileDialog(this, "Open image file", FileDialog.LOAD);
d.setFile("*.gif;*.jpg");
d.setDirectory(lastDir);
d.show();
String f = d.getFile();
lastDir = d.getDirectory();
if(f != null)
{ //image=Toolkit.getDefaultToolkit().getImage(lastDir+f);
// image = new ImageIcon(lastDir + f);
im = Toolkit.getDefaultToolkit ().getImage (lastDir + f);
if(im==null) return false;
image=new ImageIcon(lastDir+f);
height = image.getIconHeight();
width = image.getIconWidth();
System.out.println("new image icon"+height+" "+width);

}
System.out.println("new file"+lastDir+f);
count++;
swingdraw();
//repaint();
}
else if(arg.equals("Exit"))
System.exit(0);
else
return false;
return true;
}

public static void main(String[]args)
{
SwingPic app = new SwingPic();
app.setTitle("Swing Picture Demonstration");
app.show();
}
}

这个到挺花时间的。
一时间也不可能给你做出来,不过,我可以给你一些网址,希望对你有所帮助。

http://www.csdn.net
http://www.onjava.com
http://www.javaworld.com
http://forum.javaeye.com
http://www.javareserach.com http://java.chinaitlab.com
http://www.javaworld.com.tw