我写了一个打开图片的浏览器。 代码如下:
package tom.myBrowse;import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.MalformedURLException;
import java.net.URL;import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;import com.sun.image.codec.jpeg.JPEGEncodeParam;public class MyBrowseFrame extends JScrollPane { // 定义一个 标题为 "Picture Browse" 的窗格 A Frame is a top-level window with a title and a border.
private static JFrame myFrame = new JFrame("My Image Browse Frame");
// JPanel 是一般轻量级容器。 继承-->javax.swing.JComponent-->java.awt.Container
public static JPanel myPanel ;
// 菜单中的项的实现。菜单项本质上是位于列表中的按钮。当用户选择“按钮”时,将执行与菜单项关联的操作。JPopupMenu 中包含的 JMenuItem 正好执行该功能。
private static JMenuItem tempItem;
// 用于短文本字符串或图像或二者的显示区。
public static JLabel lab;
// FileChooser choose = new FileChooser();
public void showGUI() throws MalformedURLException{
// 设置此 frame 是否可由用户调整大小。
myFrame.setResizable(false);
myPanel = (JPanel) myFrame.getContentPane();
// 将组件移到新位置。通过此组件父级坐标空间中的 x 和 y 参数来指定新位置的左上角。
myPanel.setLocation(200, 300);
// 设置此容器的布局管理器。
myPanel.setLayout(new BorderLayout());
//菜单栏的实现。将 JMenu 对象添加到菜单栏以构造菜单。当用户选择 JMenu 对象时,就会显示其关联的 JPopupMenu,允许用户选择其上的某一个 JMenuItem。
JMenuBar menuBar = new JMenuBar();
myFrame.setJMenuBar(menuBar);
//菜单的该实现是一个包含 JMenuItem 的弹出窗口,用户选择 JMenuBar 上的项时会显示该 JMenuItem。
JMenu FileMenu = new JMenu("File");
menuBar.add(FileMenu);
// 通过URL 得到图片 ------ 不知道为什么得不到。
tempItem = new JMenuItem("Load By URL");
tempItem.addActionListener(new LoadByURLListener());
FileMenu.add(tempItem);
// ImageIcon imageIcon = new ImageIcon(new URL("http://img1.mtime.com/CMS/News/2008/44/20081028203940.52112744.jpg"));
ImageIcon imageIcon = new ImageIcon(new URL("http://www.baidu.com/img/baidu_logo.gif"));
lab = new JLabel(imageIcon);
myPanel.add(lab,BorderLayout.CENTER);
tempItem = new JMenuItem("Load From Location");
myFrame.setMinimumSize(new Dimension(800,800));
myFrame.setLocation(60, 80); // 窗口的 左上角 的 位置
myFrame.setVisible(true);
myFrame.setDefaultCloseOperation(myFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) throws MalformedURLException {
MyBrowseFrame test = new MyBrowseFrame();
test.showGUI();
}
class LoadByURLListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String imgURL = "http://img1.mtime.com/CMS/News/2008/44/20081028203940.52112744.jpg";
JPanel imgPanel = new JPanel();
imgPanel.setLayout(new BorderLayout());
try {
ImageIcon imageIcon = new ImageIcon(new URL(imgURL));
// JLabel label = new JLabel(imageIcon);
System.out.println(imageIcon.getIconHeight()+" -- "+imageIcon.getIconWidth()+" -- "+imageIcon.getDescription());
lab = new JLabel(imageIcon);
// imgPanel.add(lab);
myPanel.add(lab,BorderLayout.CENTER);
//
// myFrame.add(myPanel);
} catch (MalformedURLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
}为什么从 LoadByURLListener 中 的到的 图片不能显示在我 的图片浏览区 Frame 中呢???请帮忙看一下。。我的程序你可以直接 复制下来 直接运行。在线等您 。谢谢。。
package tom.myBrowse;import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.MalformedURLException;
import java.net.URL;import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;import com.sun.image.codec.jpeg.JPEGEncodeParam;public class MyBrowseFrame extends JScrollPane { // 定义一个 标题为 "Picture Browse" 的窗格 A Frame is a top-level window with a title and a border.
private static JFrame myFrame = new JFrame("My Image Browse Frame");
// JPanel 是一般轻量级容器。 继承-->javax.swing.JComponent-->java.awt.Container
public static JPanel myPanel ;
// 菜单中的项的实现。菜单项本质上是位于列表中的按钮。当用户选择“按钮”时,将执行与菜单项关联的操作。JPopupMenu 中包含的 JMenuItem 正好执行该功能。
private static JMenuItem tempItem;
// 用于短文本字符串或图像或二者的显示区。
public static JLabel lab;
// FileChooser choose = new FileChooser();
public void showGUI() throws MalformedURLException{
// 设置此 frame 是否可由用户调整大小。
myFrame.setResizable(false);
myPanel = (JPanel) myFrame.getContentPane();
// 将组件移到新位置。通过此组件父级坐标空间中的 x 和 y 参数来指定新位置的左上角。
myPanel.setLocation(200, 300);
// 设置此容器的布局管理器。
myPanel.setLayout(new BorderLayout());
//菜单栏的实现。将 JMenu 对象添加到菜单栏以构造菜单。当用户选择 JMenu 对象时,就会显示其关联的 JPopupMenu,允许用户选择其上的某一个 JMenuItem。
JMenuBar menuBar = new JMenuBar();
myFrame.setJMenuBar(menuBar);
//菜单的该实现是一个包含 JMenuItem 的弹出窗口,用户选择 JMenuBar 上的项时会显示该 JMenuItem。
JMenu FileMenu = new JMenu("File");
menuBar.add(FileMenu);
// 通过URL 得到图片 ------ 不知道为什么得不到。
tempItem = new JMenuItem("Load By URL");
tempItem.addActionListener(new LoadByURLListener());
FileMenu.add(tempItem);
// ImageIcon imageIcon = new ImageIcon(new URL("http://img1.mtime.com/CMS/News/2008/44/20081028203940.52112744.jpg"));
ImageIcon imageIcon = new ImageIcon(new URL("http://www.baidu.com/img/baidu_logo.gif"));
lab = new JLabel(imageIcon);
myPanel.add(lab,BorderLayout.CENTER);
tempItem = new JMenuItem("Load From Location");
myFrame.setMinimumSize(new Dimension(800,800));
myFrame.setLocation(60, 80); // 窗口的 左上角 的 位置
myFrame.setVisible(true);
myFrame.setDefaultCloseOperation(myFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) throws MalformedURLException {
MyBrowseFrame test = new MyBrowseFrame();
test.showGUI();
}
class LoadByURLListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String imgURL = "http://img1.mtime.com/CMS/News/2008/44/20081028203940.52112744.jpg";
JPanel imgPanel = new JPanel();
imgPanel.setLayout(new BorderLayout());
try {
ImageIcon imageIcon = new ImageIcon(new URL(imgURL));
// JLabel label = new JLabel(imageIcon);
System.out.println(imageIcon.getIconHeight()+" -- "+imageIcon.getIconWidth()+" -- "+imageIcon.getDescription());
lab = new JLabel(imageIcon);
// imgPanel.add(lab);
myPanel.add(lab,BorderLayout.CENTER);
//
// myFrame.add(myPanel);
} catch (MalformedURLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
}为什么从 LoadByURLListener 中 的到的 图片不能显示在我 的图片浏览区 Frame 中呢???请帮忙看一下。。我的程序你可以直接 复制下来 直接运行。在线等您 。谢谢。。
解决方案 »
- 高手进啊!!!请教关于 不可达代码
- 一个基础问题 关于String类的
- 怎样利用网页中的JApplet调用本机的java程序?
- Jspinner 问题
- 想做一个jtable,然后可以根据用户选择来判断需要哪列和哪行
- 排序问题:
- 怎样找到上次提交后new的线程?
- jdk中,如何设置tcp的 SO_KEEPALIVE ?
- 各位大虾请帮忙!!AWT的问题,一段程序请读一下!(在线等待)
- 谁能告诉我究竟哪里错了啊?
- 为什么Java编译时返回"cannot resolve symbol symbol : method doubleValue location : class java.lang.Double"的错误?
- 请教 ::Berkeley DB java api 问题 郁闷中,求高人指教。
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>图片浏览</title>
<style type="text/css">
#divPictures
{
padding:10px 10px 10px 10px;
height:500px;
width:70%;
float:left;
}
#divList
{
background-color:Red;
height:520px;
width:27%;
float:left;
padding:10px 8px 10px 8px;
overflow:scroll;
}
#picShow
{
height:100%;
width:100%;
}
.imageTemp
{
margin-top:8px;
cursor:pointer;
}
.imageTemp:hover
{
border-width:5px;
border-color:Green;
border-style:dashed;
}
</style>
<script type="text/javascript">
var images = new Array();
function initImages()
{
for (var index = 1; index < 17; index++)
{
images[index-1] = "Images/" + index.toString() + ".jpg";
}
}
function imageTemp_click(item)
{
var src = item.srcElement.src;
var picShow = document.getElementById("picShow");
picShow.src = src;
}
function showImages() {
var divList = document.getElementById("divList");
var width = divList.clientWidth-8*2;
var height = width * 3 / 4;
for (var index = 0; index < images.length - 1; index++)
{
var imgTemp = document.createElement("img");
imgTemp.src = images[index];
imgTemp.width = width;
imgTemp.height = height;
imgTemp.onclick = imageTemp_click;
imgTemp.className = "imageTemp";
divList.appendChild(imgTemp);
}
}
function page_Load()
{
initImages();
showImages();
}
</script>
</head>
<body onload="page_Load()">
<div id="divPictures">
<img id="picShow" alt="图片"/>
</div>
<div id="divList">
</div>
</body>
</html>我的问题是在divList这边点击图片在divPicture里面没有反应,求解释