【问题标题】:issue with fram hiding框架隐藏问题
【发布时间】:2012-07-21 07:55:18
【问题描述】:

当我试图打开一个新框架时,我无法隐藏一个新框架。在这段代码的末尾,调用了另一个类的 start() 方法,我希望隐藏这个类框架,但我似乎无法从其当前位置访问 from。

package InventoryApp;

//Import
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
 /**
 *
 * @author Curtis
 */
public class JSplash extends JFrame implements ActionListener
{
    //declaration of variable objects
    Font myFont = new Font("Arial", Font.BOLD, 20);
    JButton myButton = new JButton("Click Me!");
    Color bgColor = new Color(0,0,255);
    Color firstColor = new Color(255,255,255);
    String first = "Welcome to DaemoDynamics!";
     String last = "Click the Button";
     String middle = "";
     String middle2 = "";


    int count = 1;  
    //Constructor
    public JSplash()
            {
                super("Item Inventory Application");
                setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                setLayout (new BorderLayout());
                add(myButton, BorderLayout.SOUTH);
                setDefaultLookAndFeelDecorated(true);
                getContentPane().setBackground(bgColor);
                //adds action listener
                myButton.addActionListener(this);
            }
    //Paint method
    @Override
    public void paint(Graphics e)
    {
        super.paint(e);
        e.setFont(myFont);
        e.setColor(firstColor);


          e.drawString(first, 14, 80);
          e.drawString(last, 70, 240);
          e.drawString(middle, 75, 150);
          e.drawString(middle2, 60, 175);
    }

     public static void begin()
     {
             final int TALL = 316;
             final int WIDE = 304;
             JSplash frame = new JSplash();
             frame.setSize(WIDE, TALL);
             frame.setVisible(true);
     }
    //Listener Method
    @Override
    public void actionPerformed(ActionEvent e) 
    {
        //First Time button hit
        if(count == 1)
        {
            middle = "Brighter Business";
                middle2 = "for A Brighter Future";
                last = "Click Again to Begin";
                repaint();
            //increases button count
            count ++;
        }
        else//if button count is not 1
        {
            frame.setVisible(false);
            FinalProject.start();
        }  
    }
}

【问题讨论】:

  • 这段代码似乎无法编译。
  • 顺便说一句,您的代码建议您认为这可以通过将随机代码行放在一起来完成。它不能。您需要了解每一行发生了什么。

标签: java hide frame


【解决方案1】:

frame 被声明为局部变量,因此超出了actionPerformed() 方法的范围。

【讨论】:

    猜你喜欢
    • 2013-02-10
    • 2011-11-02
    • 2017-07-06
    • 2015-03-21
    • 2011-06-17
    • 2011-03-11
    • 2016-10-14
    • 1970-01-01
    • 2017-10-13
    相关资源
    最近更新 更多