- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是一名本科生,正在使用 NetBeans IDE 7.4 和 Swing GUI 创建 Java 天气应用程序(可执行 JAR)。到目前为止,我已经成功创建了这么多。到目前为止,我对 Java 的了解非常有限。我在第一次加载图像时遇到问题(即将第二个及后续图像加载到单击 jFrame 1 中的 jButton 后打开的另一个 jFrame 上时出现问题)到 GUI 面板。我尝试了多种方法,包括 getResource() 、 ImageIcon ,还尝试了 Java 2-D 文档示例。
我使用 ImageIcon 取得了部分成功,但在加载一张图像后,我无法加载任何其他图像。显示的后续图像与之前相同,没有任何变化,当我使用 getImageLoadStatus() 进行诊断时,它返回值“8”,这可能表明存在一些连接问题。我需要从 URL 加载图像。具体来说,我使用雅虎天气 RSS 源来实现程序中的所有内容,包括图像。
令我完全困惑的是,在相同的上下文中使用相同的代码时,其工作方式不同(在本例中它不起作用)。请检查下面的两个代码片段以进一步说明
附注我不知道 JSON/XML 解析来获取数据,所以我使用的是一个非常简单的 URL 到字符串方法。
第一个 jFrame 中的工作
// TO GET CODE
num = weather.indexOf("code");
num1 = weather.indexOf(" ", num);
String cod = weather.substring(num + 6, num1 - 1);
String imgurl = "http://l.yimg.com/a/i/us/we/52/" + cod;
String imgurl1 = imgurl + ".gif";
System.out.println(imgurl1);
// TO DISPLAY IMAGE
try{
BufferedImage img = ImageIO.read(new URL(imgurl1));
jLabel19.setIcon(new ImageIcon(img));
}
catch(Exception e){
}
-- 在单击 jFrame 1 中的按钮时打开的第二个 jFrame 中的非工作代码 (
// TO GET CODE
num = weather_1.indexOf("day");
num1 = weather_1.indexOf("code", num);
num2 = weather_1.indexOf("/", num1);
String cod = weather_1.substring(num1 + 6, num2 - 2);
String imgurl = "http://l.yimg.com/a/i/us/we/52/" + cod;
String imgurl1 = imgurl + ".gif";
//TO GET IMAGE
try{
BufferedImage img = ImageIO.read(new URL(imgurl1));
System.out.println(imgurl1);
jLabel16.setIcon(new ImageIcon(img));
}
catch(Exception e){
}
令我完全困惑的是,如果我将变量“imgurl1”更改为其 URL 形式,即“http://l.yimg.com/a/i/us/we/52/30.gif” ',然后就可以正常工作了。但是“(new URL(imgurl1));”内带有变量的代码代码在 jFrame 1 中第一次运行。
最佳答案
所以,我查看了 http://weather.yahooapis.com/forecastrss?w=1103816&u=c查看它返回的内容并得到以下输出...
<?xml version="1.0" encoding="UTF-8"?><rss xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" version="2.0">
<channel>
<title>Yahoo! Weather - Melbourne, AU</title>
<link>http://us.rd.yahoo.com/dailynews/rss/weather/Melbourne__AU/*http://weather.yahoo.com/forecast/ASXX0075_c.html</link>
<description>Yahoo! Weather for Melbourne, AU</description>
<language>en-us</language>
<lastBuildDate>Sun, 02 Mar 2014 1:29 pm AEDT</lastBuildDate>
<ttl>60</ttl>
<yweather:location city="Melbourne" country="Australia" region="VIC"/>
<yweather:units distance="km" pressure="mb" speed="km/h" temperature="C"/>
<yweather:wind chill="21" direction="190" speed="19.31"/>
<yweather:atmosphere humidity="46" pressure="1015.92" rising="0" visibility="9.99"/>
<yweather:astronomy sunrise="7:03 am" sunset="7:57 pm"/>
<image>
<title>Yahoo! Weather</title>
<width>142</width>
<height>18</height>
<link>http://weather.yahoo.com</link>
<url>http://l.yimg.com/a/i/brand/purplelogo//uh/us/news-wea.gif</url>
</image>
<item>
<title>Conditions for Melbourne, AU at 1:29 pm AEDT</title>
<geo:lat>-37.87</geo:lat>
<geo:long>145.1</geo:long>
<link>http://us.rd.yahoo.com/dailynews/rss/weather/Melbourne__AU/*http://weather.yahoo.com/forecast/ASXX0075_c.html</link>
<pubDate>Sun, 02 Mar 2014 1:29 pm AEDT</pubDate>
<yweather:condition code="28" date="Sun, 02 Mar 2014 1:29 pm AEDT" temp="21" text="Mostly Cloudy"/>
<description><![CDATA[
<img src="http://l.yimg.com/a/i/us/we/52/28.gif"/><br />
<b>Current Conditions:</b><br />
Mostly Cloudy, 21 C<BR />
<BR /><b>Forecast:</b><BR />
Sun - AM Clouds/PM Sun. High: 22 Low: 12<br />
Mon - Partly Cloudy. High: 27 Low: 14<br />
Tue - Mostly Sunny. High: 32 Low: 19<br />
Wed - AM Light Rain. High: 21 Low: 12<br />
Thu - Partly Cloudy. High: 22 Low: 13<br />
<br />
<a href="http://us.rd.yahoo.com/dailynews/rss/weather/Melbourne__AU/*http://weather.yahoo.com/forecast/ASXX0075_c.html">Full Forecast at Yahoo! Weather</a><BR/><BR/>
(provided by <a href="http://www.weather.com" >The Weather Channel</a>)<br/>
]]></description>
<yweather:forecast code="30" date="2 Mar 2014" day="Sun" high="22" low="12" text="AM Clouds/PM Sun"/>
<yweather:forecast code="30" date="3 Mar 2014" day="Mon" high="27" low="14" text="Partly Cloudy"/>
<yweather:forecast code="34" date="4 Mar 2014" day="Tue" high="32" low="19" text="Mostly Sunny"/>
<yweather:forecast code="11" date="5 Mar 2014" day="Wed" high="21" low="12" text="AM Light Rain"/>
<yweather:forecast code="30" date="6 Mar 2014" day="Thu" high="22" low="13" text="Partly Cloudy"/>
<guid isPermaLink="false">ASXX0075_2014_03_06_7_00_AEDT</guid>
</item>
</channel>
</rss><!-- fan516.sports.gq1.yahoo.com Sun Mar 2 03:08:38 PST 2014 -->
在这里,我心想,我根本不可能尝试解析它,除非有 API 不仅可以读取内容,还可以查询内容。
所以我写了这个快速测试......
它读取 RSS 源,从 /rss/channel/item
路径中查找 description
元素,其中包含您要查找的信息。
然后我需要解析描述内容,因为它是 HTML 格式,这样可以轻松找到 img
标签并将 src
属性提取到图像中.
最后我显示了一个 JOptionPane
显示图标...
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.xml.sax.SAXException;
public class YahooTest {
public static void main(String[] args) {
Document doc = null;
try {
URL url = new URL("http://weather.yahooapis.com/forecastrss?w=1103816&u=c");
Node descNode = getNodeFrom(url, "/rss/channel/item/description");
if (descNode != null) {
String desc = descNode.getTextContent();
System.out.println(desc);
desc = "<root>" + desc + "</root>";
Node imgSourceNode = getNodeFrom(desc, "/root/img[@src]");
if (imgSourceNode != null) {
String imgUrl = imgSourceNode.getAttributes().getNamedItem("src").getNodeValue();
BufferedImage img = ImageIO.read(new URL(imgUrl));
JOptionPane.showMessageDialog(
null,
"The Weather looks like...",
"Weather",
JOptionPane.PLAIN_MESSAGE,
new ImageIcon(img));
} else {
JOptionPane.showMessageDialog(null, "No image source found in description");
}
} else {
JOptionPane.showMessageDialog(null, "No description node found");
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
public static Node getNodeFrom(URL url, String query) throws IOException, SAXException, ParserConfigurationException, XPathExpressionException {
Node node = null;
InputStream is = null;
try {
is = url.openStream();
node = getNodeFrom(is, query);
} finally {
try {
is.close();
} catch (Exception e) {
}
}
return node;
}
public static Node getNodeFrom(String text, String query) throws IOException, SAXException, ParserConfigurationException, XPathExpressionException {
Node node = null;
InputStream is = null;
try {
is = new ByteArrayInputStream(text.getBytes());
node = getNodeFrom(is, query);
} finally {
try {
is.close();
} catch (Exception e) {
}
}
return node;
}
public static Node getNodeFrom(InputStream is, String query) throws ParserConfigurationException, SAXException, IOException, XPathExpressionException {
Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(is);
return getNodeFrom(doc, query);
}
public static Node getNodeFrom(Document doc, String query) throws XPathExpressionException {
return getNodeFrom(doc.getDocumentElement(), query);
}
public static Node getNodeFrom(Node node, String query) throws XPathExpressionException {
XPath xPath = XPathFactory.newInstance().newXPath();
XPathExpression xExp = xPath.compile(query);
return (Node) xExp.evaluate(node, XPathConstants.NODE);
}
}
我确实花了一些时间查看你的代码,但是你糟糕的变量命名选择使得几乎不可能弄清楚发生了什么......
看看http://docs.oracle.com/javase/tutorial/jaxp/ , How XPath Works和 XPath Tutorial
关于java - Java NetBeans Swing GUI 中的动态图像内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22119889/
我正在为我的按钮使用 onClick 功能。我的按钮代码如下所示: Button 1 Button 2 我的 JS 函数如下所示: function fadeNext(selectedId, spee
首先,我想提一下,我理解每个人在不提供至少一些试验或错误的情况下提出问题的感受,但这纯粹是一种知识需求,话虽如此,我会去提前问。 我一直无法弄清楚如何将保存在 MySQL 表中的 600-1000 个
我想做的事情有点令人困惑,而且我英语不太好,所以我先把代码贴在这里,这样你就可以很容易地理解: 以下是表单内容: Testing for Stackoverflow Option1
我学习 SDL 二维编程已有一段时间了,现在我想创建一个结合使用 SDL 和 OpenGL 的程序。我是这样设置的: SDL_Init(SDL_INIT_VIDEO); window = SDL_Cr
我创建了 2 个 data-* 标签。数据类别和数据标签。单击 href 标签后,我想复制该数据类别和数据标签以形成输入。我的代码是:
我想用 CSS 换行。我正在使用内容。 td:before { content: "Test\A Test2"; } 它不工作。如何正确
这个问题已经有答案了: Java Class that implements Map and keeps insertion order? (8 个回答) 已关闭 6 年前。 我有一个 HashMap
我正在尝试使用 JMeter 执行端到端测试。测试涉及写入SFTP文件夹并从另一个SFTP文件夹读取写入操作生成的文件。 我能够使用 JMeter SSH SFTP 插件连接到 SFTP 文件夹,并能
您好,我有带有标准服务器端 Servlet 的 GWT 客户端。 我可以从 GWT 客户端上传文件并在服务器端读取其内容 我可以将其作为字符串发送回客户端 但是 我有 GWT FormPanel与操作
我在 Plone 4.3.9 中创建了一个自定义类型的灵巧性,称为 PersonalPage,必须只允许在特定文件夹中使用 成员文件夹/用户文件夹 . 在他的 FTI 中,默认情况下 False .
在新(更新)版本的应用程序中更改小部件布局的最佳做法是什么?当新版本提供更新、更好的小部件时,如何处理现有小部件? 最佳答案 我认为您必须向用户显示一个弹出窗口,说明“此版本中的新功能”并要求他们重新
在我的应用程序中,我使用支持 View 寻呼机和 PagerTabStrip。进入查看寻呼机我有一些 fragment ,进入其中一个我正在使用支持卡片 View 。运行应用程序后,所有卡片 View
我有以下布局文件。基本上我有谷歌地图,在左上角我有一个 TextView,我需要在其中每 15 秒保持一次计数器以刷新 map 。布局很好。
我使用如下结构: HashMap > > OverallMap 如果我这样做: OverallMap . clear ( ) clear() 丢弃的所有内容(HashMap 对象、Integer 对
我在数据库中有 1000 张图像。在页面加载时,我随机显示 60 张图片,当用户滚动时,我通过 AJAX 请求添加 20 张图片。 第一种方法 我所做的是将所有图像加载到一个容器中,然后隐藏所有图像并
我正在使用 woocommerce 创建一个网上商店。 我想在每个产品上添加一个包含产品信息的表格,例如颜色、交货时间等等。 但是当我添加这张表时。本产品消失后的所有内容。 我的表的代码: td {
This question already has an answer here: What does an empty value for the CSS property content do?
因此,我正在与我的 friend 一起为 Google Chrome 开发一个扩展程序,对于大多数功能(即日历、设置等),我们打开一个模式,这样我们就不必重定向到另一个页面。当您在内容之外单击时,我们
我将可变高度的 CSS 框设置为在更大的 div 中向左浮动。现在我想添加一个标题,其中文本在框的左侧垂直显示(旋转 90 度),如下面的链接所示(抱歉还不能发布图片)。 http://imagesh
相关页面位于 www.codykrauskopf.com/circus 如果您查看我页面的右侧,在半透明容器和浏览器窗口边缘之间有一个间隙。我看了看,出于某种原因,wrap、main、content
我是一名优秀的程序员,十分优秀!