View Single Post
  #1 (permalink)  
Old 04-17-2008, 02:17 AM
LearningJavaASAP LearningJavaASAP is offline
Member
 
Join Date: Apr 2008
Posts: 1
LearningJavaASAP is on a distinguished road
How do I modify a specific component within a active internalframe?
Hello everybody,

I am still learning java at this point, but I seem to have surpassed the 3 java books I own.

I have an issue here that I am confident that most of you can answer.

I am attempting to change the icon of a button in a internalframe when pressed. The code below shows the text of a button changing (but only the last iframe is being changed, not the active iframe). By answering this question I will understand how to interact with internal frames.
Here is a stripped down version of the code:

Code:
import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JDesktopPane; import javax.swing.JFrame; import javax.swing.JInternalFrame; import javax.swing.JList; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.OverlayLayout; import javax.swing.ScrollPaneConstants; import javax.swing.UIManager; import javax.swing.event.InternalFrameEvent; import javax.swing.event.InternalFrameListener; public class TestFrameButton extends JDesktopPane{ private static final long serialVersionUID = 1L; JDesktopPane desk; JDesktopPane ifdesk; JScrollPane scrollpane; JInternalFrame iframe; JFrame frame; JList jList1; JInternalFrame currentframe; Integer currentframenumber; String currentframename; Boolean[] downuptracker; Integer deskwidth = 1000; Integer deskheight = 1000; Integer scrollwidth = 1000; Integer scrollheight = 1000; JButton DownUpButton; public static void main(String[] args) { TestFrameButton d = new TestFrameButton(); } public TestFrameButton(){ downuptracker = new Boolean [99]; frame = new JFrame("Test Frame Button"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); scrollpane = new JScrollPane(desk, ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS); scrollpane.setPreferredSize(new java.awt.Dimension(scrollwidth, scrollheight)); desk = new JDesktopPane(); desk.setPreferredSize(new java.awt.Dimension(deskwidth, deskheight)); int i = 5; for (int j = 0; j <= i; j++){ UIManager.getDefaults().put("InternalFrame.icon", ""); iframe = new JInternalFrame("Internal Frame: " + j, false, true, false, false); iframe.setName(String.valueOf(j)); iframe.setBounds(30*j, 30*j,265 , 80); iframe.addInternalFrameListener(new InternalFrameListener(){ public void internalFrameClosing(InternalFrameEvent e) { } public void internalFrameClosed(InternalFrameEvent e) { } public void internalFrameOpened(InternalFrameEvent e) { } public void internalFrameIconified(InternalFrameEvent e) { } public void internalFrameDeiconified(InternalFrameEvent e) { } public void internalFrameActivated(InternalFrameEvent e) { currentframe = e.getInternalFrame(); currentframename = e.getInternalFrame().getName(); currentframenumber = Integer.valueOf(currentframename); } public void internalFrameDeactivated(InternalFrameEvent e) { } }); iframe.setTitle("Internal Frame :" + j); iframe.setVisible(true); downuptracker[j] = true; ifdesk = new JDesktopPane(); iframe.getContentPane().add(ifdesk, BorderLayout.CENTER); DownUpButton = new JButton("Old Icon here"); ifdesk.add(DownUpButton); DownUpButton.setBounds(0, 0, 130, 20); DownUpButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (downuptracker[currentframenumber].equals(true)){ // Colapse frame here and change icon DownUpButton.setText("New Icon here"); downuptracker[currentframenumber] = false; }else{ // Expand frame here and change icon DownUpButton.setText("Old Icon here"); downuptracker[currentframenumber] = true; } } }); desk.add(iframe); iframe.moveToFront(); } scrollpane.setViewportView(desk); frame.add(scrollpane); scrollpane.setVisible(true); frame.setSize(800,600); frame.setVisible(true); } }
Thank you in advance.
Reply With Quote
Sponsored Links