如题:
java图形界面中如何通过点击按钮链来下载网上的某个文件,
即:我想在图形化界面中加一个按钮,类似网页中的一个链接
通过点击这个按钮来链接到要下载的文件!
求怎么实现?
谢谢!
java图形界面中如何通过点击按钮链来下载网上的某个文件,
即:我想在图形化界面中加一个按钮,类似网页中的一个链接
通过点击这个按钮来链接到要下载的文件!
求怎么实现?
谢谢!
解决方案 »
- 一个Base64的解码程序,方法都写好了...但是main中怎么用= =
- 如何得知一个实例在初始化的时候是否使用了类型参数
- 在jtable有很多列时,怎么能在拖动最后一列向前移动时,水平滚动条自动跟着鼠标向前移动
- 怎样实现两个共享盘的文件夹传输
- Eclipse 3.2 的Swing插件在哪下载?
- JAVA问题 清达人指教.谢谢了!!
- 为什么是NullPointerException啊?
- 请大家帮忙给一个n行n列在applet实现功能的一个静态表格的代码
- 多种数据类型数据写入文件后读出问题
- 刚发现CSDN竟然加上了.NET的后缀。
- 请问JFRAME里面哪个函数可以设置隐藏标题栏?急!!!!
- char变量可以保存一个汉字么?
import java.awt.event.MouseEvent;
import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.net.URL;
import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.SpringLayout;
import javax.swing.SwingConstants;public class JavaExplorer extends JFrame
{
private final class LoadUrlAction extends MouseAdapter
{
/**
* @param meta
* @return
*/
public String getCharsetName(String meta)
{
if (null == meta || meta.trim().length() == 0)
{
return "";
}
meta = meta.trim().toLowerCase();
int index = 0;
if ((index = meta.indexOf("charset")) < 0)
{
return "";
}
if (index >= 0)
{
while (index < meta.length())
{
if (meta.charAt(index) != '=')
{
index++;
}
else
{
index++;
break;
}
}
int endIndex = index;
while (endIndex < meta.length())
{
if (meta.charAt(endIndex) != ';' && meta.charAt(endIndex) != '\"' && meta.charAt(endIndex) != '\'')
{
endIndex++;
}
else
{
break;
}
}
return meta.substring(index, endIndex);
}
return "";
} public void mousePressed(MouseEvent e)
{
try
{
URL url = new URL(JavaExplorer.this.urlTxt.getText());
BufferedInputStream receiver = new BufferedInputStream(url.openStream());
ByteArrayOutputStream _bodyByteBuffer = new ByteArrayOutputStream(4 * 1024);
byte[] buffer = new byte[1024];
int len = -1;
do
{
len = receiver.read(buffer);
if (len < 0)
{
break;
}
_bodyByteBuffer.write(buffer, 0, len);
}
while (len != 0);
String charsetName = getCharsetName(_bodyByteBuffer.toString());
String body;
if (charsetName.length() > 0)
{
body = _bodyByteBuffer.toString(charsetName);
}
else
{
// if we can't get the charset,let's use the the lastest
// charset.(usual default charset)
body = _bodyByteBuffer.toString();
}
JavaExplorer.this.content.setText(body);
}
catch (Exception e1)
{
e1.printStackTrace();
}
}
} private JTextField urlTxt; private SpringLayout springLayout; private JEditorPane content; /**
* Launch the application
*
* @param args
*/
public static void main(String args[])
{
try
{
JavaExplorer frame = new JavaExplorer();
frame.setVisible(true);
}
catch (Exception e)
{
e.printStackTrace();
}
} /**
* Create the frame
*/
public JavaExplorer()
{
super();
springLayout = new SpringLayout();
getContentPane().setLayout(springLayout);
setTitle("Java 浏览器");
setBounds(100, 100, 648, 503);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JLabel label = new JLabel();
label.setHorizontalAlignment(SwingConstants.RIGHT);
label.setHorizontalTextPosition(SwingConstants.RIGHT);
label.setText("地址:");
getContentPane().add(label);
springLayout.putConstraint(SpringLayout.SOUTH, label, 25, SpringLayout.NORTH, getContentPane());
springLayout.putConstraint(SpringLayout.EAST, label, 90, SpringLayout.WEST, getContentPane());
springLayout.putConstraint(SpringLayout.NORTH, label, 5, SpringLayout.NORTH, getContentPane());
springLayout.putConstraint(SpringLayout.WEST, label, 5, SpringLayout.WEST, getContentPane());
urlTxt = new JTextField();
urlTxt.setText("http://www.boasoft.com/t2s/index.jsp");
getContentPane().add(urlTxt);
springLayout.putConstraint(SpringLayout.SOUTH, urlTxt, 0, SpringLayout.SOUTH, label);
springLayout.putConstraint(SpringLayout.EAST, urlTxt, -75, SpringLayout.EAST, getContentPane());
springLayout.putConstraint(SpringLayout.NORTH, urlTxt, 0, SpringLayout.NORTH, label);
springLayout.putConstraint(SpringLayout.WEST, urlTxt, 5, SpringLayout.EAST, label);
final JButton goButton = new JButton();
goButton.addMouseListener(new LoadUrlAction());
goButton.setText("GO");
getContentPane().add(goButton);
springLayout.putConstraint(SpringLayout.SOUTH, goButton, 0, SpringLayout.SOUTH, urlTxt);
springLayout.putConstraint(SpringLayout.EAST, goButton, -5, SpringLayout.EAST, getContentPane());
springLayout.putConstraint(SpringLayout.NORTH, goButton, 0, SpringLayout.NORTH, urlTxt);
springLayout.putConstraint(SpringLayout.WEST, goButton, 5, SpringLayout.EAST, urlTxt);
final JScrollPane scrollPane = new JScrollPane();
getContentPane().add(scrollPane);
springLayout.putConstraint(SpringLayout.SOUTH, scrollPane, -5, SpringLayout.SOUTH, getContentPane());
springLayout.putConstraint(SpringLayout.EAST, scrollPane, 0, SpringLayout.EAST, goButton);
springLayout.putConstraint(SpringLayout.NORTH, scrollPane, 5, SpringLayout.SOUTH, label);
springLayout.putConstraint(SpringLayout.WEST, scrollPane, 0, SpringLayout.WEST, label);
content = new JEditorPane();
scrollPane.setViewportView(content);
}
}