在未加JScrollPane前 带图片的JPanel能显示
为什么把它加在JScrollPane中就不能显示了 谢谢
JScrollPane如何使用
注:用到的图片为 "C:/Pig.JPG"的大约130*130图片
代码1
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;import javax.swing.*;
import javax.swing.event.*;
import javax.swing.filechooser.FileFilter;
import java.io.*;
import javax.imageio.*;public class Test extends JFrame
{
public JPanel panel;
public JScrollPane p;
public static void main(String args[])
{
Test demo = new Test();
demo.setTitle("Test ");
demo.setVisible(true);
}
public Test()
{
this.setSize(1000,500);
Container contentPane = getContentPane();
panel = new JPanel(); ImageBox box = new ImageBox("C:/Pig.JPG");
box.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(java.awt.event.MouseEvent e) {
System.out.println("mousePressed1()");
}
});
panel.add(box); contentPane.add(panel);
}
}
代码2
class ImageBox extends JLabel
{
private Image img;
public int imageWidth;
public int imageHeight;
public ImageBox(String name)
{
super(new ImageIcon(name));
}
}
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;import javax.swing.*;
import javax.swing.event.*;
import javax.swing.filechooser.FileFilter;
import java.io.*;
import javax.imageio.*;public class Test extends JFrame
{
public JPanel panel;
public JScrollPane p;
public static void main(String args[])
{
Test demo = new Test();
demo.setTitle("Test ");
demo.setVisible(true);
}
public Test()
{
this.setSize(1000,500);
Container contentPane = getContentPane();
p = new JScrollPane();
p.setBounds(300,300,300,300);
contentPane.add(p);
panel = new JPanel(); ImageBox box = new ImageBox("C:/Pig.JPG");
box.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(java.awt.event.MouseEvent e) {
System.out.println("mousePressed1()");
}
});
panel.add(box); p.add(panel);
}
}class ImageBox extends JLabel
{
private Image img;
public int imageWidth;
public int imageHeight;
public ImageBox(String name)
{
super(new ImageIcon(name));
}
}
为什么把它加在JScrollPane中就不能显示了 谢谢
JScrollPane如何使用
注:用到的图片为 "C:/Pig.JPG"的大约130*130图片
代码1
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;import javax.swing.*;
import javax.swing.event.*;
import javax.swing.filechooser.FileFilter;
import java.io.*;
import javax.imageio.*;public class Test extends JFrame
{
public JPanel panel;
public JScrollPane p;
public static void main(String args[])
{
Test demo = new Test();
demo.setTitle("Test ");
demo.setVisible(true);
}
public Test()
{
this.setSize(1000,500);
Container contentPane = getContentPane();
panel = new JPanel(); ImageBox box = new ImageBox("C:/Pig.JPG");
box.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(java.awt.event.MouseEvent e) {
System.out.println("mousePressed1()");
}
});
panel.add(box); contentPane.add(panel);
}
}
代码2
class ImageBox extends JLabel
{
private Image img;
public int imageWidth;
public int imageHeight;
public ImageBox(String name)
{
super(new ImageIcon(name));
}
}
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;import javax.swing.*;
import javax.swing.event.*;
import javax.swing.filechooser.FileFilter;
import java.io.*;
import javax.imageio.*;public class Test extends JFrame
{
public JPanel panel;
public JScrollPane p;
public static void main(String args[])
{
Test demo = new Test();
demo.setTitle("Test ");
demo.setVisible(true);
}
public Test()
{
this.setSize(1000,500);
Container contentPane = getContentPane();
p = new JScrollPane();
p.setBounds(300,300,300,300);
contentPane.add(p);
panel = new JPanel(); ImageBox box = new ImageBox("C:/Pig.JPG");
box.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(java.awt.event.MouseEvent e) {
System.out.println("mousePressed1()");
}
});
panel.add(box); p.add(panel);
}
}class ImageBox extends JLabel
{
private Image img;
public int imageWidth;
public int imageHeight;
public ImageBox(String name)
{
super(new ImageIcon(name));
}
}
{
this.setSize(1000,500);
Container contentPane = getContentPane();
p = new JScrollPane();
p.setBounds(300,300,300,300);
contentPane.add(p); // 新建了一个JScrollPane, 但是并没有把JPanel加入到JScrollPane中.
panel = new JPanel(); ImageBox box = new ImageBox("C:/Pig.JPG");
box.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(java.awt.event.MouseEvent e) {
System.out.println("mousePressed1()");
}
}); 可以改为如下试试:public Test()
{
this.setSize(1000,500);
Container contentPane = getContentPane();
panel = new JPanel();
p = new JScrollPane(panel); // 在创建JScrollPane的时候把panel作为他的构造函数的参数,
// 这样, panel就会被加到JScrollPane中.
p.setBounds(300,300,300,300);
contentPane.add(p);
ImageBox box = new ImageBox("C:/Pig.JPG");
box.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(java.awt.event.MouseEvent e) {
System.out.println("mousePressed1()");
}
}); 另一种方法:
public Test()
{
this.setSize(1000,500);
Container contentPane = getContentPane();
p = new JScrollPane();
p.setBounds(300,300,300,300);
contentPane.add(p);
panel = new JPanel();
p.getViewport().setView(panel); // 先创建JScrollPane, 然后动态的向JScrollPane中加入组件. ImageBox box = new ImageBox("C:/Pig.JPG");
box.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(java.awt.event.MouseEvent e) {
System.out.println("mousePressed1()");
}
});
JScrollPane jp = new JScrollPane();
jp.setVerticalScrollBarPolicy(JScrollPane.verticalScrollBarPolicy);
jp.setHorizontalScrollBarPolicy(JScrollPane.horizontalScrollBarPolicy);
JPanel panel = new JPanel();
jp.getViewport().add(panel);
注意如果需要滚动的时候,
设置一下panel的大小 panel.setPreferredSize(new Dimension(width,height));