1 / 8

TCU CoSc 10403 Programming with Java

TCU CoSc 10403 Programming with Java. The JFrame Class. The JFrame Class. A Frame is a top-level window with a title and a border. The size of the frame includes any area designated for the border.

webb
Download Presentation

TCU CoSc 10403 Programming with Java

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TCU CoSc 10403 Programming with Java The JFrame Class

  2. The JFrame Class A Frame is a top-level window with a title and a border. The size of the frame includes any area designated for the border. Calling setVisible(true) makes the frame appear onscreen. Sometimes you might see the show() method used instead. The two usages are equivalent. By default, the frame window will appear in the top left corner of the screen. Another location can be specified using the setlocation() method on the frame. The default layout manager is BorderLayout. Five steps to get a frame to work: • Create the frame: JFrame frame = new Jframe(“** some title **”); • Set the layout: frame.setLayout(new FlowLayout()); • Instantiate the components and add them to the frame. frame.add(button1); • Size the frame: frame.setSize(200,500); • Set the location: frame.setLocation(100,200); • Show the frame: frame.setVisible(true);

  3. The JFrame Class Two Constructors that are of interest to us – • JFrame()
Constructs a new frame that is initially invisible. • JFrame(String title)
Creates a new, initially invisible Frame with the specified title. • Sizing a JFrame:JFrame frame1 = new JFrame(“CoSc 10403”); 
. . . frame1.setSize(100,100); //will appear in upper left area of screen frame1.setSize(100,100); //frame of size 100x100 pixels frame1.setLocation(100,50); //placement 100 pixels over, 50 pixels down frame1.setBounds(100,50,100,100); //same as above

  4. The JFrame Class Useful methods that are of interest to us – • void pack()
Size the window on the basis of the minimum size to fit all components added to the frame (i.e., just wide enough to fit the text in the bottom of the frame and high enough for each component to display properly). • void setSize(int, int)
Set the total size of the window • void setBounds(int, int, int, int)
Set the size and position of the window. • void setLocation(int, int)
Set the location of the upper left corner of the window • void remove(Component comp) Removes the specified component from this container. • void removeAll() Removes all components from the JFrame. • void setLayout(LayoutManager manager) Sets the layout of this component.

  5. The JFrame Class import javax.swing.*; import java.awt.event.*; import java.awt.*; public class JFrameDemo extends JApplet implements ActionListener { JLabel l1 = new JLabel("Welcome to my JFrame"); JButton b1 = new JButton("Display Frame"); JFrame frame; public void init() { setLayout(new FlowLayout()); add(b1); b1.addActionListener(this); } public void actionPerformed(ActionEvent e) { displayJFrame("Put this text on the JFrame"); } public void displayJFrame(String s) { frame = new JFrame("My JFrame Demo"); frame.setBounds(300,0,200,100); frame.setBackground(Color.BLUE); frame.setLayout(new FlowLayout()); frame.add(l1); l1.setForeground(Color.WHITE); l1.setText(s); frame.setVisible(true); } }

  6. JFrame Details • How do you close a JFrame? • You can: • Get rid of the JFrame object entirely. • Just make the JFrame invisible, but ready to be made visible again an instant later. • Make the JFrame invisible, and put in into cold storage, ready to be made visible again with a little thawing. • System.exit( 0 ) the program immediately • You can close the JFrame: • when the user clicks the closing X. • when the user clicks a close menu item. • programmatically when you decide to close the JFrame. • programmatically when you decide to shut down the entire program • When the user clicks the close X, that does not make your JFrame object mysteriously disappear or force it to close, or go invisible. All it does is send your JFrame a WindowClosing event. Your JFrame is free to ignore the event, close the JFrame in any of the four usual ways, or do something else entirely.The event in no way closes your JFrame or changes its state. It is totally up to you what happens. Receiving a WindowClosingEvent is not an eviction notice; it is just notification the user idly clicked an X. It does not mean the JFrame is closing or that it has to close, just that the user would like it to.

  7. JFrame Details • Shorthand WindowClosingEvent Handlers • There are three shortcuts to writing WindowClosing event handlers. With these shortcuts, you have no opportunity to add any of your own application code. • If all you want to do is call dispose() you can use this, instead of setting up an event handler. this.setDefaultCloseOperation ( JFrame.DISPOSE_ON_CLOSE ); • If all you want to do is call setVisible( false ) you can use this, instead of setting up an event handler. this.setDefaultCloseOperation ( JFrame.HIDE_ON_CLOSE );
Believe it or not, this is the default. Beware! • If all you want to do is call System.exit( 0 ) you can use this, instead of setting up an event handler. this.setDefaultCloseOperation ( JFrame.EXIT_ON_CLOSE ); • If all you want to write your own custom event handler, you need to use this, as well as setting up an event handler. this.setDefaultCloseOperation( JFrame.DO_NOTHING_ON_CLOSE );

  8. JFrame Details this.setDefaultCloseOperation ( JFrame. DO_NOTHING_ON_CLOSE ); // what happens when user closes the JFrame. WindowListener windowListener = new WindowAdapter() { // anonymous WindowAdapter class public void windowClosing ( WindowEvent w ) { // Whatever application code you want to do on close, e.g. rememberLocation( MyFrame.this.getX(),MyFrame.this.getY() ); // Whatever code you want to actually close the JFrame, e.g. MyFrame.this.setVisible( false ); MyFrame.this.dispose(); } // end windowClosing };// end anonymous class this.addWindowListener( windowListener );

More Related