моя программа выходит из кнопки закрытия окна, но не из кнопки выхода. помогите мне, я использовал System.exit (0). скажите мне другой путь - PullRequest
0 голосов
/ 05 июля 2010

Вот мой код:

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.table.*;
import javax.swing.JOptionPane;
import java.util.*;
import java.applet.*;
/*<applet code=tabledemo.class height=300 width=300></applet>*/

public class tabledemo extends JApplet implements ActionListener
{
    JScrollPane jsp1;
    JPanel jp,jp1,jp2,jp3;
    JTable jt1;
    int i,j;
    DefaultTableModel tm=new DefaultTableModel(3,3);
    String data[][]={{"1001","Ram","BCA"},
            {"1002","Sham","MCA"},
            {"1003","Mohan","BCA"}};

    String head[]={"Rollno","Name","Course"};
    JTextField jtf1,jtf2,jtf3;
    JButton b1,b2,b3,b4;

    public void init()
    {
        jp=new JPanel();
        jp.setLayout(new BorderLayout());
        jp1=new JPanel();
        jp1.setLayout(new BorderLayout());
        jp2=new JPanel();
        jp2.setLayout(new FlowLayout());
        jp3=new JPanel();
        jp3.setLayout(new FlowLayout());

        jt1=new JTable();
        jt1.setModel(tm);

        for(i=0;i<3;i++)
        {
            for(j=0;j<3;j++)
            {
                tm.setValueAt(data[i][j],i,j);
            }
        }


        jp1.add(jt1,BorderLayout.CENTER);
        jp.add(jp1,BorderLayout.CENTER);

        jtf1=new JTextField(25);    
        jtf2=new JTextField(25);    
        jtf3=new JTextField(25);    
        jp2.add(jtf1);
        jp2.add(jtf2);
        jp2.add(jtf3);


        b1=new JButton("Add Row");  
        b2=new JButton("Display Count");
        b3=new JButton("Coursewise Count");
        b4=new JButton("Exit");
        b1.addActionListener(this);
        b2.addActionListener(this);
        b3.addActionListener(this);
        b4.addActionListener(this);

        jp1.add(jp2,BorderLayout.SOUTH);
        jp3.add(b1);
        jp3.add(b2);
        jp3.add(b3);
        jp3.add(b4);
        jp.add(jp3,BorderLayout.SOUTH);
        int v,h;

        v=ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;
        h=ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED;

        jsp1=new JScrollPane(jp,v,h);
        Container c=getContentPane();
        c.add(jsp1);
    }

    public void actionPerformed(ActionEvent ae)
    {
        if(ae.getActionCommand().equals("Add Row"))
        {
            String [] r={jtf1.getText(),jtf2.getText(),jtf3.getText()};
            tm.addRow(r);
        }
        else if(ae.getActionCommand().equals("Display Count"))
        {
            String name;
            name=JOptionPane.showInputDialog("enter student name:");
            jtf1.setText(name);
        }
        else if(ae.getActionCommand().equals("Exit"))
        {
            int ans=0;
            ans=JOptionPane.showConfirmDialog(null,"Are you sure");
            if(ans==JOptionPane.YES_OPTION)
            {
                dispose();
                System.exit(0);
                //processEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
            }

        }
    }
}

1 Ответ

0 голосов
/ 06 июля 2010

Как уже сказал Даниэль, вы не можете закрыть браузер от своего апплета, так как это запрещено по соображениям безопасности.

Единственные возможности, которые у вас есть, - использовать метод showDocument для перенаправления на новый веб-сайт, или вы просто скрываете свой апплет с помощью методов колебания (например, setVisible).

Вы также можете позволить вашему апплету создать новый фрейм, который можно закрыть!

...