java的Gui编程:JLabel添加的图片没有显示,程序如下,为什么?JLabel添加图片的方法有哪些?请帮忙。。

//我想把图片放在label中,然后在JFrame中显示,显示窗口的内容:左边显示JList内容,右边显示JLabel内容(图片),但是最终没有图片,我把图片放在src中,应该没问题,编译也没有出错package gui;import java.awt.*;import javax.swing.*;public class A11 extends JFrame{ String string[]; JList jlist; public A11() { String string[]=new String[]{"bot","jidjs","dds"}; jlist=new JList(string); JLabel jlabel=new JLabel(new ImageIcon("/1.jpg")); jlabel.setBounds(100, 200, 200, 200); JSplitPane jsplitpane=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT); jsplitpane.setOneTouchExpandable(true); jsplitpane.setLeftComponent(jlist); jsplitpane.setRightComponent(jlabel); this.add(jsplitpane); this.setSize(200,200); this.setLocation(100,200); this.setVisible(true); this.setDefaultCloseOperation(EXIT_ON_CLOSE); } public static void main(String[] args) { A11 a11=new A11(); }}

比如我的图片.在src目录下的tupian目录里

那么路径的写法是

new ImageIcon("src/tupian/首页.jpg")
或者
new ImageIcon(this.getClass().getResource("/tupian/首页.jpg"))
或者
new ImageIcon("D:\\workspace\\JavaDemo\\src\\tupian\\首页.jpg")

效果图

参考代码

import javax.swing.*;
import javax.swing.border.*;
import javax.swing.event.*;

/*
 * JSplitPane 可拆分窗口
 * JSplitPane.setOneTouchExpandable(true);设置是否可伸缩
 * 
 * */
public class P10_JspltPance extends JFrame implements ListSelectionListener{

private static final long serialVersionUID = 1L;
JPanel jp1, jp2;
JList<String> jlist;
JSplitPane jsp;
JScrollPane jspane;
JLabel jl;

String[] ly = { "首页","长白山", "峨眉山", "华山"};
String[] path= {"/tupian/首页.jpg","/tupian/长白山.jpg","/tupian/峨眉山.jpg","/tupian/华山.jpg"};
public static void main(String[] args) {

new P10_JspltPance();
}

public P10_JspltPance() {

jl = new JLabel(new ImageIcon(this.getClass().getResource(path[0])));
jlist = new JList<String>(ly);
jlist.setVisibleRowCount(5);
jlist.addListSelectionListener(this);
jspane = new JScrollPane(jlist);

jsp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, jspane, jl);
jsp.setEnabled(false);
// 是否可伸缩
jsp.setOneTouchExpandable(true);
jl.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEmptyBorder(), "页面展示", TitledBorder.TOP,
TitledBorder.RIGHT));

// 设置窗口属性布局管理
JPanel jp = new JPanel();
jp.add(jsp);
add(jp);
this.setTitle("图片浏览器");
this.setSize(630, 500);
this.setLocationRelativeTo(null);//窗口居中
this.setVisible(true);//窗口可见
this.setDefaultCloseOperation(EXIT_ON_CLOSE);

}

@Override
public void valueChanged(ListSelectionEvent e) {
if(e.getValueIsAdjusting()) {

jl.setIcon(new ImageIcon(this.getClass().getResource(path[jlist.getSelectedIndex()])));
}
}
}

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答