import java.awt.event.*
import java.io.*
import javax.swing.*
public class ImageViewer
{
public static void main(String[] args)
{
JFrame frame = new ImageViewerFrame()
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
frame.show()
}
}
class ImageViewerFrame extends JFrame
{
public ImageViewerFrame()
{
setTitle("ImageViewer")
setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT)
label = new JLabel()
Container contentPane = getContentPane()
contentPane.add(label)
chooser = new JFileChooser()
chooser.setCurrentDirectory(new File("."))
JMenuBar menuBar = new JMenuBar()
setJMenuBar(menuBar)
JMenu menu = new JMenu("File")
menuBar.add(menu)
JMenuItem openItem = new JMenuItem("Open")
menu.add(openItem)
openItem.addActionListener(new
ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
int r = chooser.showOpenDialog(null)
if(r == JFileChooser.APPROVE_OPTION)
{
String name
= chooser.getSelectedFile().getPath()
label.setIcon(new ImageIcon(name))
}
}
})
JMenuItem exitItem = new JMenuItem("Exit")
menu.add(exitItem)
exitItem.addActionListener(new
ActionListener()
{
public void actionPerformed(ActionEvent event)
{
System.exit(0)
}
})
}
private JLabel label
private JFileChooser chooser
private static final int DEFAULT_WIDTH = 300
private static final int DEFAULT_HEIGHT = 400
}
完全可以,程序如下,这里把图片和程序放在一块,不放在一起的话。
代码Icon icon=new ImageIcon("1.gif")//要给出图片的完整的路径。
图片资源:
import java.awt.*
import javax.swing.*
public class JFrameTest extends JFrame{
/**
* @param args
*/
private static final long serialVersionUID=1L
JFrameTest(String name){
super(name)
this.setSize(200, 200)//设置窗口大小。
this.setBackground(Color.DARK_GRAY)//设置背景颜色。
this.setLayout(new FlowLayout())//设置顺序布局。
Container con=this.getContentPane()//获取容器。
//设置按钮,为按钮添加图片。
Icon icon=new ImageIcon("1.gif")//根据路径取出图片。
JButton button=new JButton("带图片的按钮",icon)
con.add(button)//添加按钮。
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE)//设置默认的关闭方式。
}
public static void main(String[] args) {
JFrameTest test=new JFrameTest("按钮")
test.setVisible(true)
}
}
运行结果:
实现思路:无论是何种类型,都是转换为流的形式进行的文件传输和存储。可以通过BufferedReader 流的形式进行流缓存,之后通过readLine方法获取到缓存的内容。
BufferedReader bre = null
OutputStreamWriter pw = null//定义一个流
try {
String file = "D:/test/test.GIF"
bre = new BufferedReader(new FileReader(file))//此时获取到的bre就是整个文件的缓存流
pw = new OutputStreamWriter(new FileOutputStream(“D:/New.GIF”),"GBK")//确认流的输出文件和编码格式,此过程创建了“test.GIF”实例
while ((str = bre.readLine())!= null) // 判断最后一行不存在,为空结束循环
{
pw.write(str)//将要写入文件的内容,可以多次write
};
bre.close();
pw.close()//关闭流
备注:文件流用完之后必须及时通过close方法关闭,否则会一直处于打开状态,直至程序停止,增加系统负担。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)