-2

I need help using the FileChooser. Here's what I'm trying to do: I need to show the Open Dialog Box if the "JMenuItem open" is clicked and the Save Dialog Box if "JMenuItem save" is clicked.

I'm still a newbie so go easy on me :) This is just a homework, please don't mind the other codes. Any answers will be appreciated :)

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.filechooser.*;

public class Assignment extends JFrame implements ActionListener {
JMenuBar villsBar = new JMenuBar();

JMenu file = new JMenu("File");
JFileChooser fc = new JFileChooser();
JMenuItem open = new JMenuItem("Open");
JMenuItem save = new JMenuItem("Save");
JMenuItem print = new JMenuItem("Print");
JMenuItem close = new JMenuItem("Close");

JMenu computation = new JMenu("Computation");
JMenu grades = new JMenu("Grades");
JMenuItem circle = new JMenuItem("Circle");
JMenuItem triangle = new JMenuItem("Triangle");
JMenuItem square = new JMenuItem("Square");
JMenuItem twoNumbers = new JMenuItem("Two Numbers");
JMenuItem frstSem = new JMenuItem("1st Sem");
JMenuItem secSem = new JMenuItem("2nd Sem");

JMenu info = new JMenu("Information");
JMenu personal = new JMenu("Personal");
JMenuItem member = new JMenuItem("Member 1");
    JLabel picture = new JLabel(new ImageIcon("D:\\Vill\\Wallpapers\\Picture.png"));
JMenu quotes = new JMenu("Quotes");

JMenu others = new JMenu("Others");
JMenuItem order = new JMenuItem("Order");
JMenuItem calc = new JMenuItem("Calculator");
JMenuItem exit = new JMenuItem("Exit");

Button buttons[];
Panel panelbtn, screenPanel;
JTextField screen;
String test1,test2,test3,test4,test5;
JLabel space1 = new JLabel (" ");
JLabel space2 = new JLabel (" ");
int tester;
double answer;
boolean clicked, afterclicked;

FlowLayout layout = new FlowLayout();
Container calcula = new Container();
Container mmber = new Container();

public Assignment(){
super("Assignment");
setVisible(true);
setLayout(layout);
setBounds(500,200,500,500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setJMenuBar(villsBar);

villsBar.add(file);
file.setMnemonic('F');
file.add(open);
open.setMnemonic('O');
file.addSeparator();
file.add(save);
save.setMnemonic('S');
file.addSeparator();
file.add(print);
print.setMnemonic('P');
file.addSeparator();
file.add(close);
close.setMnemonic('C');

villsBar.add(computation);
computation.setMnemonic('C');
computation.add(grades);
grades.setMnemonic('G');
grades.add(frstSem);
frstSem.setMnemonic('1');
grades.addSeparator();
grades.add(secSem);
secSem.setMnemonic('2');
grades.addSeparator();

computation.addSeparator();
computation.add(circle);
circle.setMnemonic('C');
computation.addSeparator();
computation.add(triangle);
triangle.setMnemonic('T');
computation.addSeparator();
computation.add(square);
square.setMnemonic('S');
computation.addSeparator();
computation.add(twoNumbers);
twoNumbers.setMnemonic('T');

villsBar.add(info);
info.setMnemonic('I');
info.add(personal);
personal.setMnemonic('P');
personal.add(member);
member.setMnemonic('M');
info.addSeparator();
info.add(quotes);
quotes.setMnemonic('Q');
info.addSeparator();

villsBar.add(others);
others.setMnemonic('O');
others.add(order);
order.setMnemonic('O');
others.addSeparator();
others.add(calc);
calc.setMnemonic('C');
others.addSeparator();
others.add(exit);
exit.setMnemonic('E');

member.addActionListener(this);
calc.addActionListener(this);
exit.addActionListener(this);

add(mmber);
    mmber.setLayout(layout);
    picture.setVisible(false);
    mmber.add(picture);
add(calcula);
    screen = new JTextField(20);
    screen.setVisible(false);
    screen.setEditable(false);
    calcula.add(screen);


    panelbtn = new Panel();
    panelbtn.setVisible(false);
    calcula.add(panelbtn);

    screenPanel = new Panel();
    screenPanel.setVisible(false);
    calcula.add(screenPanel);


    buttons = new Button[18];
        for (int v=0; v<=9; v++) {
            buttons[v] = new Button(String.valueOf(v));
            buttons[v].setVisible(false);}

        buttons[10] = new Button("/");
        buttons[10].setVisible(false);
        buttons[11] = new Button("*");
        buttons[11].setVisible(false);
        buttons[12] = new Button("-");
        buttons[12].setVisible(false);
        buttons[13] = new Button("+");
        buttons[13].setVisible(false);
        buttons[14] = new Button("=");
        buttons[14].setVisible(false);
        buttons[15] = new Button(".");
        buttons[15].setVisible(false);
        buttons[16] = new Button("Clear");
        buttons[16].setVisible(false);
        buttons[17] = new Button("Off");
        buttons[17].setVisible(false);

    screenPanel.add(screen);
        screenPanel.setLayout(new GridLayout(2,2));

    calcula.setLayout(new BorderLayout());
        panelbtn.setLayout(new GridLayout(5,4,3,3));


        panelbtn.add(buttons[16]);
        panelbtn.add(space1);
        panelbtn.add(buttons[17]);
        panelbtn.add(space2);

        panelbtn.add(buttons[7]);
        panelbtn.add(buttons[8]);
        panelbtn.add(buttons[9]);
        panelbtn.add(buttons[10]);

        panelbtn.add(buttons[4]);
        panelbtn.add(buttons[5]);
        panelbtn.add(buttons[6]);
        panelbtn.add(buttons[11]);

        panelbtn.add(buttons[1]);
        panelbtn.add(buttons[2]);
        panelbtn.add(buttons[3]);
        panelbtn.add(buttons[12]);

        panelbtn.add(buttons[0]);
        panelbtn.add(buttons[15]);
        panelbtn.add(buttons[14]);
        panelbtn.add(buttons[13]);

for (int v=0; v<buttons.length; v++)
        buttons[v].addActionListener(this);

    add(screenPanel, BorderLayout.NORTH);
    add(panelbtn, BorderLayout.CENTER);


    }   

public void actionPerformed(ActionEvent e) {
    Object source = e.getSource();
    if (source == open) {

    }
    if (source == save) {

    }

    if (source == member) {
        picture.setVisible(true);

        screen.setVisible(false);
        panelbtn.setVisible(false);
        screenPanel.setVisible(false);
            for (int v=0; v<=9; v++)
                buttons[v].setVisible(false);

                buttons[10].setVisible(false);
                buttons[11].setVisible(false);
                buttons[12].setVisible(false);
                buttons[13].setVisible(false);
                buttons[14].setVisible(false);
                buttons[15].setVisible(false);
                buttons[16].setVisible(false);
                buttons[17].setVisible(false); }
    if (source == exit)
        System.exit(0);
    if (source == calc) {
        picture.setVisible(false);
        screen.setVisible(true);
        panelbtn.setVisible(true);
        screenPanel.setVisible(true);
            for (int v=0; v<=9; v++)
                buttons[v].setVisible(true);

                buttons[10].setVisible(true);
                buttons[11].setVisible(true);
                buttons[12].setVisible(true);
                buttons[13].setVisible(true);
                buttons[14].setVisible(true);
                buttons[15].setVisible(true);
                buttons[16].setVisible(true);
                buttons[17].setVisible(true); }

        clicked = false; 

        for (int v=0; v<buttons.length && !clicked; v++){
            Object numbahs = e.getSource();

        if(numbahs == buttons[v]){

            clicked = true;

            switch(v){
                case 0: case 1: case 2: case 3: case 4: case 5: 
                case 6: case 7: case 8: case 9: case 15:

                if(afterclicked){
                    screen.setText("");
                    afterclicked = false;
                }

            screen.setText(screen.getText() + buttons[v].getLabel());
            break;
            }
        }
    }



if(e.getSource()==buttons[13]){
        test1=screen.getText();
        screen.setText("");
        tester=1;
    }


if(e.getSource()==buttons[12]){
        test1=screen.getText();
        screen.setText("");
        tester=2;
    }


if(e.getSource()==buttons[11]){
        test1=screen.getText();
        screen.setText("");
        tester=3;
    }

if(e.getSource()==buttons[10]){
        test1=screen.getText();
        screen.setText("");
        tester=4;
    }



if(e.getSource()==buttons[14]){
    for(int x=0;x<16;x++)
        buttons[x].setEnabled(false);
        test2=screen.getText();


if(tester==1){
    answer=Double.parseDouble(test1)+Double.parseDouble(test2);
    screen.setText(String.valueOf(answer));
}
else
    if(tester==2){
        answer=Double.parseDouble(test1)-Double.parseDouble(test2);
        screen.setText(String.valueOf(answer));
    }
else 
    if(tester==3){
        answer=Double.parseDouble(test1)*Double.parseDouble(test2); 
    }
else 
    if(tester==4){
        answer=Double.parseDouble(test1)/Double.parseDouble(test2);
        screen.setText(String.valueOf(answer));
    }
}


if(e.getSource()==buttons[16]){
    for(int x=0;x<16;x++){
        buttons[x].setEnabled(true);
        screen.setText("");
    }
}


if(e.getSource()==buttons[17])
    System.exit(0);
}


public static void main(String args []) {
Assignment frame = new Assignment();
}
}   

this is the part where I need help:

public void actionPerformed(ActionEvent e) {
    Object source = e.getSource();
    if (source == open) {

    }
    if (source == save) {

    }
MadProgrammer
  • 343,457
  • 22
  • 230
  • 366
gauche23
  • 67
  • 1
  • 4
  • 1
    This is the first result for googling "Java JFileChooser": http://docs.oracle.com/javase/tutorial/uiswing/components/filechooser.html – Kevin Workman Mar 08 '14 at 04:04
  • I've done what's on that but the Dialog Boxes won't appear. I had enough so... I need help right away :D – gauche23 Mar 08 '14 at 04:07
  • 1
    *"I've done what's on that but the Dialog Boxes won't appear."* Where is the evidence of any attempt to use it in the code you posted? *"I had enough so..."* Are you sure you're cut out for programming? *"I need help right away"* Plan your time better or hire someone (urgently). Not out problem. – Andrew Thompson Mar 08 '14 at 04:49

2 Answers2

1

Take a look at How to use File Chooser

Example from linked tutorial...

//Create a file chooser
final JFileChooser fc = new JFileChooser();
...
//In response to a button click:
int returnVal = fc.showOpenDialog(aComponent);

Generally, you'll find you have better luck with Swing windows if you prepare them first, the make them visible

MadProgrammer
  • 343,457
  • 22
  • 230
  • 366
0

You got a logical mistake, Write the following only,

setLayout(layout);
setBounds(500,200,500,500);
setVisible(true);

when you complete addition of items to Main Window(Frame), and sub windows. You Have written that at the start, and adding items to main window and sub windows after that, which is logically incorrect. Also Your Code is too much Ambigous, Where is the Constructor??? Where is your Main Method???

Adnan Ahmad Khan
  • 634
  • 2
  • 7
  • 25