Have a simple Image browser
[imagelist.txt]
jht.gif|JAVA How-to
jsht.gif|Javascript How-to
pht.gif|PowerBuilder How-to
[application version]
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;public class ImageBrowser {
public static void main(String s[]) {
AFrame f = new AFrame();
}
}
class AFrame extends Frame implements ActionListener {
List lbx;
MyCanvas can;
String url[] = new String[50];
public AFrame() {
setTitle("Image selection, double click to display");
setLayout(new GridLayout(1,2));
setSize(800,600);
lbx = new List();
can = new MyCanvas();
add(lbx); add(can);
initLbx();
// action on listbox double click
lbx.addActionListener(this);
// to close the Frame
addWindowListener
(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
);
setVisible(true);
}
public void actionPerformed (ActionEvent ae) {
String theUrl = url[lbx.getSelectedIndex()];
MediaTracker media = new MediaTracker(this);
Image image =
Toolkit.getDefaultToolkit().getImage(theUrl);
media.addImage(image, 0);
try {
media.waitForID(0);
can.setImage(image);
}
catch (Exception e) { e.printStacktrace();}
}
public void initLbx() {
int i = 0;
try {
String aLine = "";
BufferedReader in
= new BufferedReader(new FileReader("imagelist.txt"));
while(null != (aLine = in.readLine())) {
java.util.StringTokenizer st =
new java.util.StringTokenizer(aLine, "|");
url[i++] = st.nextToken();
// lbx.addItem(st.nextToken());
lbx.add(st.nextToken());
}
}
catch(Exception e) { e.printStackTrace();}
}
}class MyCanvas extends Canvas {
private Image image;
public MyCanvas() {
super();
} public void setImage(Image i) {
image = i;
repaint();
} public void paint(Graphics g) {
if (image != null)
g.drawImage(image, 0,0, this);
}
}
NOTE : You can download this example here
[applet version]
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;public class ImageBrowserApplet extends Applet {
public void init() {
APanel p = new APanel(this);
setLayout(new BorderLayout());
add(p, "Center");
}
}
class APanel extends Panel implements ActionListener {
private List lbx;
private MyCanvas can;
private Applet parent = null;
private String url[] = new String[50];
public APanel(Applet a) {
parent = a;
setLayout(new GridLayout(1,2));
lbx = new List();
can = new MyCanvas();
add(lbx); add(can);
initLbx();
// action on listbox double click
lbx.addActionListener(this);
setBackground(new Color(0).white);
}
public void actionPerformed (ActionEvent ae) {
try {
URL theUrl =
new URL(parent.getCodeBase(), url[lbx.getSelectedIndex()]);
MediaTracker media = new MediaTracker(this);
Image image =
Toolkit.getDefaultToolkit().getImage(theUrl);
media.addImage(image, 0);
media.waitForID(0);
can.setImage(image);
}
catch (Exception e) { e.printStackTrace();}
}
public void initLbx() {
int i = 0;
try {
String aLine = "";
URL source =
new URL(parent.getCodeBase(), "imagelist.txt");
BufferedReader in
= new BufferedReader
(new InputStreamReader(source.openStream()));;
while(null != (aLine = in.readLine())) {
java.util.StringTokenizer st =
new java.util.StringTokenizer(aLine, "|");
url[i++] = st.nextToken();
// lbx.addItem(st.nextToken());
lbx.add(st.nextToken());
}
}
catch(Exception e) { e.printStackTrace();}
}
}class MyCanvas extends Canvas {
private Image image;
public MyCanvas() {
super();
} public void setImage(Image i) {
image = i;
repaint();
} public void paint(Graphics g) {
if (image != null)
g.drawImage(image, 0,0, this);
}
}
[imagelist.txt]
jht.gif|JAVA How-to
jsht.gif|Javascript How-to
pht.gif|PowerBuilder How-to
[application version]
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;public class ImageBrowser {
public static void main(String s[]) {
AFrame f = new AFrame();
}
}
class AFrame extends Frame implements ActionListener {
List lbx;
MyCanvas can;
String url[] = new String[50];
public AFrame() {
setTitle("Image selection, double click to display");
setLayout(new GridLayout(1,2));
setSize(800,600);
lbx = new List();
can = new MyCanvas();
add(lbx); add(can);
initLbx();
// action on listbox double click
lbx.addActionListener(this);
// to close the Frame
addWindowListener
(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
);
setVisible(true);
}
public void actionPerformed (ActionEvent ae) {
String theUrl = url[lbx.getSelectedIndex()];
MediaTracker media = new MediaTracker(this);
Image image =
Toolkit.getDefaultToolkit().getImage(theUrl);
media.addImage(image, 0);
try {
media.waitForID(0);
can.setImage(image);
}
catch (Exception e) { e.printStacktrace();}
}
public void initLbx() {
int i = 0;
try {
String aLine = "";
BufferedReader in
= new BufferedReader(new FileReader("imagelist.txt"));
while(null != (aLine = in.readLine())) {
java.util.StringTokenizer st =
new java.util.StringTokenizer(aLine, "|");
url[i++] = st.nextToken();
// lbx.addItem(st.nextToken());
lbx.add(st.nextToken());
}
}
catch(Exception e) { e.printStackTrace();}
}
}class MyCanvas extends Canvas {
private Image image;
public MyCanvas() {
super();
} public void setImage(Image i) {
image = i;
repaint();
} public void paint(Graphics g) {
if (image != null)
g.drawImage(image, 0,0, this);
}
}
NOTE : You can download this example here
[applet version]
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;public class ImageBrowserApplet extends Applet {
public void init() {
APanel p = new APanel(this);
setLayout(new BorderLayout());
add(p, "Center");
}
}
class APanel extends Panel implements ActionListener {
private List lbx;
private MyCanvas can;
private Applet parent = null;
private String url[] = new String[50];
public APanel(Applet a) {
parent = a;
setLayout(new GridLayout(1,2));
lbx = new List();
can = new MyCanvas();
add(lbx); add(can);
initLbx();
// action on listbox double click
lbx.addActionListener(this);
setBackground(new Color(0).white);
}
public void actionPerformed (ActionEvent ae) {
try {
URL theUrl =
new URL(parent.getCodeBase(), url[lbx.getSelectedIndex()]);
MediaTracker media = new MediaTracker(this);
Image image =
Toolkit.getDefaultToolkit().getImage(theUrl);
media.addImage(image, 0);
media.waitForID(0);
can.setImage(image);
}
catch (Exception e) { e.printStackTrace();}
}
public void initLbx() {
int i = 0;
try {
String aLine = "";
URL source =
new URL(parent.getCodeBase(), "imagelist.txt");
BufferedReader in
= new BufferedReader
(new InputStreamReader(source.openStream()));;
while(null != (aLine = in.readLine())) {
java.util.StringTokenizer st =
new java.util.StringTokenizer(aLine, "|");
url[i++] = st.nextToken();
// lbx.addItem(st.nextToken());
lbx.add(st.nextToken());
}
}
catch(Exception e) { e.printStackTrace();}
}
}class MyCanvas extends Canvas {
private Image image;
public MyCanvas() {
super();
} public void setImage(Image i) {
image = i;
repaint();
} public void paint(Graphics g) {
if (image != null)
g.drawImage(image, 0,0, this);
}
}
解决方案 »
- 安卓怎么让软件连接到数据库达到数据更新的效果
- java写的判断100以内数是素数还是和数,请各位指导,是否有问题?
- java socket 乱序收发问题
- 哪位兄台使用的是netbeans5.5能帮忙看看吗,谢谢
- 低级ui 高级的设计模式
- 请问:String.equals()方法与String.comparaTo()有什么区别???
- (高手必答题)关于GridBagLayout和GridBagConstraints的使用问题!(高手必答题)
- JB7+tomcat 开发Servlet 寻求帮助!
- java applet 编译错误
- 找个MM 吧!
- about ibm visualage3.0的问题
- 怎么从任何地方读取任何形式的文件,再把它放到另外一个地方?
你误会我的意思了,我需要的是在表格当中显示图片,一个图片,对应一串字符串数据
// import javax.swing.*;
import java.awt.*;
import java.util.*;public class JListWithImages extends JList { public JListWithImages() {
setCellRenderer(new CustomCellRenderer());
} public static void main(String[] args) {
JFrame frame = new JFrame();
JPanel panel = new JPanel();
Vector vector = new Vector();
panel.setForeground(Color.black);
panel.setBackground(Color.white); // first line
JPanel jp1 = new JPanel();
jp1.add(new JLabel(new ImageIcon("gumby.gif")));
jp1.add(new JLabel("A line for Gumby"));
jp1.add(new JLabel(new ImageIcon("gumby2.gif"))); // second line
JPanel jp2 = new JPanel();
jp2.add(new JLabel(new ImageIcon("gumby.gif")));
jp2.add(new JLabel("Another line for Gumby"));
jp2.add(new JLabel(new ImageIcon("gumby2.gif"))); vector.addElement(jp1);
vector.addElement(jp2); JListWithImages jlwi = new JListWithImages();
jlwi.setListData(vector); panel.add(jlwi);
frame.getContentPane().add(panel);
frame.setSize(300,300);
frame.setVisible(true);
} class CustomCellRenderer implements ListCellRenderer {
public Component getListCellRendererComponent
(JList list, Object value, int index,
boolean isSelected,boolean cellHasFocus) {
Component component = (Component)value;
component.setBackground
(isSelected ? Color.black : Color.white);
component.setForeground
(isSelected ? Color.white : Color.black);
return component;
}
}
}
The above How-to use the default layout, so each line line in the JList are centered. The version below is showing each line left justified instead. // import com.sun.java.swing.*;
import javax.swing.*;
// import com.sun.java.swing.border.*;
import javax.swing.border.*;
import java.awt.*;
import java.util.*;public class JListWithImages extends JList { public JListWithImages() {
setCellRenderer(new CustomCellRenderer());
} public static void main(String[] args) {
JFrame frame = new JFrame();
JPanel panel = new JPanel();
Vector vector = new Vector();
panel.setForeground(Color.black);
panel.setBackground(Color.white); // first line
JPanel jp1 = new JPanel(new FlowLayout(FlowLayout.LEFT)); // NEW
jp1.add(new JLabel(new ImageIcon("gumby.gif")));
jp1.add(new JLabel("A line for Gumby"));
jp1.add(new JLabel(new ImageIcon("gumby2.gif"))); // second line
JPanel jp2 = new JPanel(new FlowLayout(FlowLayout.LEFT)); // NEW
jp2.add(new JLabel(new ImageIcon("gumby.gif")));
jp2.add(new JLabel("Another line for Gumby"));
jp2.add(new JLabel(new ImageIcon("gumby2.gif"))); vector.addElement(jp1);
vector.addElement(jp2); JListWithImages jlwi = new JListWithImages();
jlwi.setListData(vector);
jlwi.setBorder(new LineBorder(Color.black)); panel.add(jlwi);
frame.getContentPane().add(panel);
frame.setSize(300,300);
frame.setVisible(true);
} class CustomCellRenderer implements ListCellRenderer {
public Component getListCellRendererComponent
(JList list, Object value, int index,
boolean isSelected,boolean cellHasFocus) {
Component component = (Component)value;
component.setBackground
(isSelected ? Color.black : Color.white);
component.setForeground
(isSelected ? Color.white : Color.black);
return component;
}
}
}