Java image interface development example
In the ImageIO, jfilechooser, jmenu, jpanel application, jlabel, jfilechooser, and jmenu application examples, images are browsed by setting the icon attribute of jlabel. In this example, images are browsed through jpanel, use ImageIO to read the corresponding file and display the image. The Code is as follows:
Import java. AWT. graphics;
Import java. AWT. image;
Import java. AWT. event. actionevent;
Import java. AWT. event. actionlistener;
Import java. Io. file;
Import java. Io. ioexception;
Import javax. ImageIO. ImageIO;
Import javax. Swing. jfilechooser;
Import javax. Swing. jframe;
Import javax. Swing. jlabel;
Import javax. Swing. jmenu;
Import javax. Swing. jmenubar;
Import javax. Swing. jmenuitem;
Import javax. Swing. jpanel;
/**
* Simple ImageIO application instance
* @ Author Zuo Jie JDK 5.0
*
*/
Public class example7frame extends jframe {
Private Static final long serialversionuid = 1l;
Private jlabel label;
Private jfilechooser filechooser;
Private imagepanel panel;
Public example7frame (){
Settitle ("Image Browsing"); // sets the Form title
Setsize (500,400); // set the form size
// Create a tag object
Label = new jlabel ();
Add (Label); // Add a label on the form
// Create a file selector object
Filechooser = new jfilechooser ();
Filechooser. setcurrentdirectory (new file ("."); // set the default path to the current directory.
// Create a menu bar
Jmenubar menubar = new jmenubar ();
Setjmenubar (menubar); // Add a menu bar to the form
// Add a menu item
Jmenu menu = new jmenu ("file ");
Menubar. Add (menu); // Add a menu item in the menu bar
// Add the "open" sub-menu item
Jmenuitem openitem = new jmenuitem ("open ");
Menu. Add (openitem); // Add a sub-menu item to the menu item
Panel = new imagepanel (); // create a display image panel
Add (panel); // Add an image panel to the form
// Add events and listeners for the Open menu
Openitem. addactionlistener (New actionlistener (){
Public void actionreceivmed (actionevent event ){
// Display the file Selector
Int result = filechooser. showopendialog (null );
// If a file is selected, it is displayed in the tag.
If (result = jfilechooser. approve_option ){
String name = filechooser. getselectedfile (). getpath (); // obtain the path of the selected file
Panel. setimage (name); // you can specify the image path.
Panel. repaint (); // update the Panel
}
}
});
// Add the "exit" sub-menu item
Jmenuitem exititem = new jmenuitem ("quit ");
Menu. Add (exititem); // Add a sub-menu item to the menu item
// Add events and listeners for the "exit" menu
Exititem. addactionlistener (New actionlistener (){
Public void actionreceivmed (actionevent event ){
System. Exit (0 );
}
});
}
Public static void main (string [] ARGs ){
Example7frame frame = new example7frame ();
Frame. setdefaclocloseoperation (jframe. exit_on_close );
Frame. setvisible (true );
}
}
/**
* Create a panel for displaying images
*/
Class imagepanel extends jpanel {
Private Static final long serialversionuid = 1l;
Private image;
Private int showwdith;
Private int showheight;
Public void setimage (string filename ){
// Read image files
Try {
Image = ImageIO. Read (new file (filename ));
} Catch (ioexception e ){
E. printstacktrace ();
}
}
Public void paintcomponent (Graphics g ){
Super. paintcomponent (g );
If (image = NULL)
Return;
// Obtain the width and height of the image file
Int imagewidth = image. getwidth (this );
Int imageheight = image. getheight (this );
// Obtain the Panel height and width
Int width = getwidth ();
Int Height = getheight ();
// The maximum display size of the image is the Panel size.
If (imagewidth> width ){
This. showwdith = width;
} Else {
This. showwdith = imagewidth;
}
If (imageheight> height ){
This. showheight = height;
} Else {
This. showheight = imageheight;
}
G. drawimage (image, 0, 0, showwdith, showheight, null, null); // draw the image content on the panel
}
}