class JiePanel extends JPanel {
LittleJie littleJie = null;
public JiePanel() {
this.setLayout(new FlowLayout(FlowLayout.LEFT));
} public void template() throws Exception {
littleJie = new LittleJie(“101”,“你好”);
littleJie.addType()
this.add(littleJie);
} }}class LittleJie extends JPanel { ImageIcon img = new ImageIcon("jie.jpg"); public LittleJie() {
this.setSize(77,100);
this.setLayout(new GridLayout(3,1)); }
@Override
public void paint(Graphics g) {
super.paint(g);
g.drawImage(img.getImage(), 0, 0,this);
}
public void addType(String id, String type) {
JLabel idJLabel = new JLabel(id);
this.add(idJLabel);
JLabel typeJLabel = new JLabel(type);
this.add(typeJLabel);
}
}我想在一个大的 JiePanel 里面画加一个小的LittleJie ,LittleJie上面是一个图片img, 下面是两行字idJLabel和typeJLabel但是结果是显示那个小图片,却没有显示字,求大虾们帮助啊
LittleJie littleJie = null;
public JiePanel() {
this.setLayout(new FlowLayout(FlowLayout.LEFT));
} public void template() throws Exception {
littleJie = new LittleJie(“101”,“你好”);
littleJie.addType()
this.add(littleJie);
} }}class LittleJie extends JPanel { ImageIcon img = new ImageIcon("jie.jpg"); public LittleJie() {
this.setSize(77,100);
this.setLayout(new GridLayout(3,1)); }
@Override
public void paint(Graphics g) {
super.paint(g);
g.drawImage(img.getImage(), 0, 0,this);
}
public void addType(String id, String type) {
JLabel idJLabel = new JLabel(id);
this.add(idJLabel);
JLabel typeJLabel = new JLabel(type);
this.add(typeJLabel);
}
}我想在一个大的 JiePanel 里面画加一个小的LittleJie ,LittleJie上面是一个图片img, 下面是两行字idJLabel和typeJLabel但是结果是显示那个小图片,却没有显示字,求大虾们帮助啊
1.你的图片路径问题,没有找到
2.你写的程序调用有问题,this.setSize(77,100);本身给的显示大小也太小了,随便一个小头像就能遮住文字我下面给你的例子是一个能显示的,但是图片会遮盖到一部分文字,基本上你的重写JPanel的代码逻辑是正确的
package csdn.p6;import javax.swing.*;
import java.awt.*;class JiePanel extends JPanel {
LittleJie littleJie = null;
public JiePanel() {
this.setLayout(new FlowLayout(FlowLayout.LEFT));
} public void template() throws Exception { littleJie = new LittleJie();
littleJie.addType("101","你好");
this.add(littleJie);
this.validate();
} public static void main(String[] args)throws Exception{
JFrame frame=new JFrame("demo");
Container c=frame.getContentPane();
JiePanel jp=new JiePanel();
jp.template();
c.add(jp); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.pack();
frame.setVisible(true);
}
}class LittleJie extends JPanel { ImageIcon img = new ImageIcon("resources/images/thu.jpg");//改成小一些的图片地址 public LittleJie() {
this.setSize(700,800);
this.setLayout(new GridLayout(3,1)); }
@Override
public void paint(Graphics g) {
super.paint(g);
g.drawImage(img.getImage(), 0, 0,this);
System.out.println("--------");
}
public void addType(String id, String type) {
JLabel idJLabel = new JLabel(id);
this.add(idJLabel);
JLabel typeJLabel = new JLabel(type);
this.add(typeJLabel);
this.add(new JButton("test",img));
}
}
import java.awt.*;public class JiePanel extends JPanel {
LittleJie littleJie = null;
public JiePanel() {
super(new FlowLayout(FlowLayout.LEFT));
} public void template() {
littleJie = new LittleJie();
littleJie.addType("101","你好");
add(littleJie);
} public static void main(String[] args) {
java.awt.EventQueue.invokeLater(new Runnable(){
@Override public void run(){
JFrame frame = new JFrame("demo");
Container c = frame.getContentPane();
JiePanel jp = new JiePanel();
jp.template();
c.add(jp);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.pack();
frame.setVisible(true);
}
});
}
class LittleJie extends JPanel {
ImageIcon img = new ImageIcon("thu.jpg");
public LittleJie(){
super(new GridLayout(3,1));
setPreferredSize(new Dimension(img.getIconWidth(),img.getIconHeight()));
} @Override public void paintComponent(Graphics g){
super.paintComponent(g);
g.drawImage(img.getImage(), 0, 0,this);
} public void addType(String id, String type) {
JLabel idJLabel = new JLabel(id);
add(idJLabel);
JLabel typeJLabel = new JLabel(type);
add(typeJLabel);
add(new JButton("Hi"));
}
}
}