java的Gui编程:JLabel添加的图片没有显示,程序如下,为什么?JLabel添加图片的方法有哪些?请帮忙。。
//我想把图片放在label中,然后在JFrame中显示,显示窗口的内容:左边显示JList内容,右边显示JLabel内容(图片),但是最终没有图片,我把图片放在src中...
//我想把图片放在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(); }}
展开
1个回答
展开全部
比如我的图片.在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()])));
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询