Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to Change setVisible() on Panels in different Java Class
    primarykey
    data
    text
    <pre><code>package com.spiralfive.inventory; import java.awt.Font; import java.awt.Panel; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.BorderLayout; import javax.swing.JApplet; import javax.swing.JButton; public class MainFile extends JApplet implements MouseListener { // Declare the initial components private JButton btnNewInventory; private JButton btnMarkDown; private JButton btnProcessSales; private JButton btnActive; private JButton btnStats; private Panel mainPanel; private Panel menuPanel; private Panel inventoryPanel; private Panel setactivePanel; // Call the Initializer... public void init() { initComponents(); } // Initialize the Main Components - Mostly Menu Items private void initComponents() { // Main Form Components mainPanel = new Panel(); menuPanel = new Panel(); inventoryPanel = new Panel(); setactivePanel = new Panel(); btnNewInventory = new JButton("New Inventory"); btnActive = new JButton("Set Active"); btnMarkDown = new JButton("Mark Down"); btnProcessSales = new JButton("Process Sale"); btnStats = new JButton("Statistics"); // Enable Mouse Interactivity btnNewInventory.addMouseListener(this); btnMarkDown.addMouseListener(this); btnProcessSales.addMouseListener(this); btnActive.addMouseListener(this); btnStats.addMouseListener(this); // Set the Fonts Font buttonFont = new Font("Arial", Font.PLAIN, 20); // Apply Fonts To Menu btnNewInventory.setFont(buttonFont); btnMarkDown.setFont(buttonFont); btnProcessSales.setFont(buttonFont); btnActive.setFont(buttonFont); btnStats.setFont(buttonFont); // Set Panel Layout For Menu Items menuPanel.setLayout(new java.awt.GridLayout(1,6)); // Add the Components menuPanel.add(btnNewInventory); menuPanel.add(btnActive); menuPanel.add(btnMarkDown); menuPanel.add(btnProcessSales); menuPanel.add(btnStats); // Add The Menu To the Main Panel mainPanel.add(BorderLayout.NORTH, menuPanel); // Make Inventory Load by Default createPanels(); makeInvVisible(); // Set It All Visible add(mainPanel); } // Create the Panels Used in this applet public void createPanels() { NewInventory inventoryPanel = new NewInventory(); inventoryPanel.setLayout(new java.awt.GridLayout(6,2)); mainPanel.add(BorderLayout.CENTER, inventoryPanel); SetActive setactivePanel = new SetActive(); setactivePanel.setLayout(new java.awt.GridLayout(6,2)); mainPanel.add(BorderLayout.CENTER, setactivePanel); } public void makeInvVisible() { inventoryPanel.setVisible(true); mainPanel.repaint(); } public void makeInvDisappear() { inventoryPanel.setVisible(false); mainPanel.repaint(); } public void makeActiveVisible() { setactivePanel.setVisible(true); mainPanel.repaint(); } public void makeActiveDisppear() { setactivePanel.setVisible(false); mainPanel.repaint(); } public void mouseClicked(MouseEvent e) { // Determine Which Button Has Been Clicked JButton currentButton = (JButton)e.getComponent(); // New Inventory Button if(currentButton == btnNewInventory) { makeInvVisible(); makeActiveDisppear(); } // Set Active Button else if(currentButton == btnActive) { makeActiveVisible(); makeInvDisappear(); } } public void mousePressed(MouseEvent e) {} public void mouseReleased(MouseEvent e) {} public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} } </code></pre> <p>I am using the code above attempting to make a new Panel() appear and the existing panel disappear when a button is clicked by using setVisible. However, I cannot get the Panel() to change. Nothing happens when the buttons are clicked, which are set to change setVisible to false on the current Panel and true on the requested Panel.</p> <p>I am fairly certain it is because the panels are set a private in a different class (initComponents). How do I access the setVisible property on the panels? Or, is this even what's wrong?</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload