【发布时间】:2015-09-02 04:04:58
【问题描述】:
我想设置通过 json 服务获取的图像大小。 ???
这是我的代码
public void getImage(){
try {
URL url = new URL("https://ajax.googleapis.com/ajax/services/search/images?v=1.0&q=good%20idea%20good%20idea%20water%20jug%20water%20jug%20thirsty%20crow%20thirsty%20crow%20long%20time%20long%20time%20jug%20jug");
URLConnection connection = url.openConnection();
String line;
StringBuilder builder = new StringBuilder();
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
while ((line = reader.readLine()) != null) {
builder.append(line);
}
JSONObject json = new JSONObject(builder.toString());
String imageUrl = json.getJSONObject("responseData").getJSONArray("results").getJSONObject(0).getString("url");
BufferedImage image = ImageIO.read(new URL(imageUrl));
ImageIcon img = new ImageIcon(image);
JLabel label = new JLabel("", img, JLabel.CENTER);
jPanel1.add( label, BorderLayout.CENTER );
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e.getMessage(), "Failure", JOptionPane.ERROR_MESSAGE);
e.printStackTrace();
}
}
我在 jPanel 中显示图像。我想设置图像的大小,因此它必须小于面板大小。我怎么能做到这一点????
【问题讨论】:
-
您遇到了第 22 条问题,面板的大小通常由内容的大小(在这种情况下为图像)决定,也许像 this 这样的东西可能会有所帮助。这是一个
JPanel,它可以绘制图像,但它会缩放图像以使其“适合”其中 -
我已经尝试过代码 [this]stackoverflow.com/questions/18053310/…> 我不需要图像是可拉伸的,所以我根据我的需要更新/更改了我的代码,但是找不到这有帮助。这是一个很好的工作,但我觉得这没有帮助。那么是否有任何方法通过直接指定宽度,高度到json图像来改变图像的大小。
-
BufferedImage#getScaledInstance- 但是我必须将您指向The Perils of Image.getScaledInstance()。您也可以查看imgscalr,但正如我所说,您可能遇到了第 22 条问题,事实上面板的大小通常取决于其内容的大小(JLabel和图像) .我发布的第一个链接还缩放图像,同时保持其纵横比
标签: java json swing user-interface