2012-07-23 52 views
0

我在尝试打开新框架时隐藏新框架时遇到问题。在这段代码的最后有一个对另一个类的start()方法的调用,我希望隐藏这个类框架,但我似乎无法从其当前位置访问该框架。与fram隐藏问题

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(); 
     } 
    } 
} 
+0

此代码似乎不能编译。 – 2012-07-23 04:24:48

+0

请参阅[使用多个JFrames,好/坏的做法?](http://stackoverflow.com/a/9554657/418556) – 2012-07-23 04:27:21

+0

另外,您的代码表明您认为可以通过将随机行的代码。它不能。你需要了解每一行发生了什么。 – 2012-07-23 04:34:27

回答

0

frame是声明作为局部变量,并且因此超出在actionPerformed()方法范围。