Results 1 to 4 of 4
- 03-16-2011, 10:46 PM #1
Member
- Join Date
- Oct 2010
- Posts
- 20
- Rep Power
- 0
Using a button to change the interface
The idea is there are 5 buttons on the top of the screen. Every time you press one it removes the old menu and produces a new one. To me, my code looks fine. The problem is when i click on "Add CD" nothing happens, but then if i manually resize the window (moving my mouse to the edge of the window and changing the size of it) the new menu pops up... Can anyone give me advice on how to fix this problem... Thanks, the whole runnable code is below
Java Code:package ui; import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.event.*; public class mainInterface extends JFrame implements ActionListener { // Variables declaration - do not modify private JButton jButton1; private JButton jButton2; private JButton jButton3; private JButton jButton4; private JButton jButton5; private JButton jButton6; private JPanel jPanel1; private JTextField text1; private JTextField text2; private JTextField text3; private JTextField text4; private JTextField text5; private JTextField text6; private JTextField text7; private JTextField text8; private JLabel label1; private JLabel label2; private JLabel label3; private JLabel label4; private JLabel label5; private JLabel label6; private JLabel label7; private JLabel label8; private JPanel bottomPanel; private JPanel topPanel; // declaring panels private JPanel holdAll; private JPanel one; private JPanel two; private JPanel three; private JPanel four; //---------------------------------------------------------- //---------------------------------------------------------- public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { mainInterface myApplication = new mainInterface(); myApplication.setLocation(100, 100); myApplication.setSize(700, 400); myApplication.setTitle("Kevin's Jukebox"); myApplication.setVisible(true); } }); } //---------------------------------------------------------- //---------------------------------------------------------- /** Creates new form mainInterface */ public mainInterface() { jButton1 = new JButton("Add CD"); jButton2 = new JButton("Add Video"); jButton3 = new JButton("Total Play Time"); jButton4 = new JButton("Create Playlist"); jButton5 = new JButton("Show Library"); jButton6 = new JButton("Quit"); topPanel = new JPanel(); holdAll = new JPanel(); bottomPanel = new JPanel(); one = new JPanel(); two = new JPanel(); three = new JPanel(); four = new JPanel(); text1 = new JTextField(15); label1 = new JLabel("Title: "); text2 = new JTextField(15); label2 = new JLabel("Artist: "); text3 = new JTextField(15); label3 = new JLabel("Length: "); text4 = new JTextField(15); label4 = new JLabel("Num of Tracks: "); label5 = new JLabel("Welcome to Kevins Jukebox"); int flag = 0; drawApp(flag); jButton1.addActionListener(this); jButton2.addActionListener(this); jButton3.addActionListener(this); jButton4.addActionListener(this); jButton5.addActionListener(this); jButton6.addActionListener(this); setDefaultCloseOperation(DISPOSE_ON_CLOSE); } //---------------------------------------------------------- //---------------------------------------------------------- public void actionPerformed(ActionEvent e) { if (e.getSource() == jButton1) { int flag = 1; drawApp(flag); } } //---------------------------------------------------------- //---------------------------------------------------------- public void drawApp(int flag) { topPanel.setLayout(new FlowLayout()); topPanel.add(jButton1); topPanel.add(jButton2); topPanel.add(jButton3); topPanel.add(jButton4); topPanel.add(jButton5); topPanel.add(jButton6); bottomPanel.add(label5); holdAll.setLayout(new BorderLayout()); holdAll.add(topPanel, BorderLayout.NORTH); holdAll.add(bottomPanel, BorderLayout.CENTER); if (flag == 0) bottomPanel.add(label5); else bottomPanel.remove(label5); if (flag == 1) { one.add(label1); one.add(text1); bottomPanel.add(one); two.add(label2); two.add(text2); bottomPanel.add(two); three.add(label3); three.add(text3); bottomPanel.add(three); four.add(label4); four.add(text4); bottomPanel.add(four); bottomPanel.setLayout(new BoxLayout(bottomPanel, BoxLayout.PAGE_AXIS)); } getContentPane().add(holdAll, BorderLayout.CENTER); // places everything on the frame } //---------------------------------------------------------- }
- 03-17-2011, 12:48 AM #2
Member
- Join Date
- Oct 2010
- Posts
- 20
- Rep Power
- 0
I found a solution... adding this.validate(); after the UI is updated... no idea why this is though... maybe someone could explain if they have any idea
- 03-17-2011, 12:51 AM #3
Member
- Join Date
- Oct 2010
- Posts
- 20
- Rep Power
- 0
ok... if anyones interested Container (Java 2 Platform SE v1.4.2)
- 03-17-2011, 04:19 AM #4
Take a look at CardLayout
db
edit And please don't provide links to old, EOLed Java API.
http://download.oracle.com/javase/6/...html#validate()
Also, for a Swing GUI the correct process is to call revalidate() when adding componenet's to an already visible parent, and additionally repaint() when removing component/s from an already visible parent. NOT validate()Last edited by DarrylBurke; 03-17-2011 at 06:09 AM.
Similar Threads
-
Adding a sqrt button and percentage button to a calculator
By Josie_Taylor in forum New To JavaReplies: 4Last Post: 03-14-2011, 01:16 AM -
Change button size on click
By dvreed77 in forum AWT / SwingReplies: 0Last Post: 03-04-2011, 02:40 AM -
Can't change the color of a button...
By mrbeast87 in forum AWT / SwingReplies: 5Last Post: 11-16-2010, 09:22 PM -
Detecting color change and clicking a button. awt.robot not fast enough?
By doejohn in forum New To JavaReplies: 3Last Post: 06-27-2010, 02:57 AM -
How can I change text for paginate button?
By robot in forum NetBeansReplies: 0Last Post: 11-20-2008, 06:04 AM


LinkBack URL
About LinkBacks
Reply With Quote
Bookmarks