Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当我试图运行这个类时,我得到了一个Java安全性错误_Java_Swing_Spinner_Jlabel - Fatal编程技术网

当我试图运行这个类时,我得到了一个Java安全性错误

当我试图运行这个类时,我得到了一个Java安全性错误,java,swing,spinner,jlabel,Java,Swing,Spinner,Jlabel,我对java非常陌生,可能会提前与父亲取得联系,而不是我现在应该尝试的,但我正在努力学习 我在尝试运行程序时不断遇到此错误 at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Sourc

我对java非常陌生,可能会提前与父亲取得联系,而不是我现在应该尝试的,但我正在努力学习

我在尝试运行程序时不断遇到此错误

at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
下面是我试图运行的代码

import java.awt.Container;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JSpinner;
import javax.swing.JTextField;
import javax.swing.SpinnerModel;
import javax.swing.SpinnerNumberModel;


public class Assingment5 extends JFrame {

public Assingment5() {
    //fonts
    java.awt.Font titlefont = new java.awt.Font("Dialog",Font.BOLD,20); 
    java.awt.Font subfont = new java.awt.Font("Dialog",Font.BOLD,14);
    java.awt.Font body = new java.awt.Font("Dialog",Font.PLAIN,12);
    //window
    setSize(1000, 800);
    this.setLayout(null);
    setTitle("If Statements Assingment");
    setLocation(350, 50);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    //Welcome Text
    JLabel welcomelb = new JLabel("Welcome to my assingment!");
    welcomelb.setFont(titlefont);
    welcomelb.setBounds(20, 10, 500, 30);
    add(welcomelb);
    //second set of welcome text
    JLabel subwelcome = new JLabel("There are 5 Programs to choose from:");
    subwelcome.setFont(subfont);
    subwelcome.setBounds(20, 30, 300, 30);
    add(subwelcome);





    //Question one variables

    //Question one title
    JLabel q1title = new JLabel("Question 1");
    q1title.setFont(subfont);
    q1title.setBounds(20, 70, 100, 30);
    add(q1title);
    //Question one dialog1
    JLabel q1d1 = new JLabel("Enter a number and confirm");
    q1d1.setFont(body);
    q1d1.setBounds(20, 100, 200, 30);
    add(q1d1);
    //spinner for input
    int spinnerstart = 1;
    SpinnerModel number = new SpinnerNumberModel(spinnerstart, spinnerstart - 1, spinnerstart + 50, 1);
    final JSpinner q1spin = addSpinner(this,number);
    q1spin.setBounds(20, 130, 50, 25);
    //Okay button
    JButton btconfirm = new JButton("Confirm");
    //x, y, width, height
    btconfirm.setBounds(80, 130, 80, 25);
    btconfirm.addActionListener( new ActionListener()
    {
        public void actionPerformed(ActionEvent e)
        {
            String q1output = null;
            Object q1input = q1spin.getValue();
            int q1inputINT = Integer.parseInt((String) q1input);
            if (q1inputINT <10 && q1inputINT >1) {
                q1output = "True";
            }
            else {
                q1output = "False";
            }
            //Question one output
            JLabel q1d2 = new JLabel();
            java.awt.Font subfont = new java.awt.Font("Dialog",Font.BOLD,14);
            q1d2.setFont(subfont);
            q1d2.setBounds(20, 300, 200, 30);
            q1d2.setText(q1output);
            add(q1d2);
        }
    });
    add(btconfirm);


}

static protected JSpinner addSpinner(Container c, SpinnerModel model) {
    JSpinner spinner = new JSpinner(model);
    c.add(spinner);

    return spinner;
}

public static void main(String[] args) {
    Assingment5 window = new Assingment5();
    window.setVisible(true);
}


}
导入java.awt.Container;
导入java.awt.Font;
导入java.awt.event.ActionEvent;
导入java.awt.event.ActionListener;
导入javax.swing.JButton;
导入javax.swing.JFrame;
导入javax.swing.JLabel;
导入javax.swing.JOptionPane;
导入javax.swing.JSpinner;
导入javax.swing.JTextField;
导入javax.swing.SpinnerModel;
导入javax.swing.SpinnerNumberModel;
公共类助理5扩展JFrame{
公共援助5(){
//字体
java.awt.Font titlefont=new java.awt.Font(“Dialog”,Font.BOLD,20);
java.awt.Font子字体=新建java.awt.Font(“对话框”,Font.BOLD,14);
java.awt.Font body=new java.awt.Font(“Dialog”,Font.PLAIN,12);
//窗口
设置大小(1000800);
此.setLayout(null);
setTitle(“If声明助理”);
设定位置(350,50);
setDefaultCloseOperation(关闭时退出);
//欢迎语
JLabel welcomelb=新的JLabel(“欢迎来到我的助手!”);
welcomelb.setFont(标题字体);
welcomelb.挫折(20,10500,30);
添加(welcomelb);
//第二套欢迎辞
JLabel subwelcome=newjlabel(“有5个程序可供选择:”);
subwelcome.setFont(子字体);
subwelcome.setBounds(20,30,300,30);
添加(次欢迎);
//问题一:变量
//问题一标题
JLabel q1title=新JLabel(“问题1”);
q1title.setFont(子字体);
Q1.挫折(20、70、100、30);
增加(标题);
//问题一对话1
JLabel q1d1=新JLabel(“输入一个数字并确认”);
q1d1.setFont(正文);
q1d1.立根(20、100、200、30);
增补(q1d1);
//输入微调器
int喷丝头开始=1;
喷丝头型号=新喷丝头型号(喷丝头启动,喷丝头启动-1,喷丝头启动+50,1);
最终JSpinner q1spin=addSpinner(这个,数字);
Q1.倒退(20、130、50、25);
//好的按钮
JButton btconfirm=新JButton(“Confirm”);
//x、 y、宽度、高度
b确认立根(80,130,80,25);
btconfirm.addActionListener(新ActionListener()
{
已执行的公共无效操作(操作事件e)
{
字符串输出=null;
对象q1input=q1spin.getValue();
int q1inputINT=Integer.parseInt((字符串)q1input);
如果(Q1输入1){
q1output=“True”;
}
否则{
q1output=“False”;
}
//问题一产出
JLabel q1d2=新的JLabel();
java.awt.Font子字体=新建java.awt.Font(“对话框”,Font.BOLD,14);
q1d2.设置字体(子字体);
q1d2.立根(20、300、200、30);
q1d2.setText(Q1输出);
添加(q1d2);
}
});
添加(btconfirm);
}
静态保护JSpinner addSpinner(容器c,SpinnerModel){
JSpinner spinner=新JSpinner(型号);
c、 添加(微调器);
返回旋转器;
}
公共静态void main(字符串[]args){
Assingment5窗口=新Assingment5();
window.setVisible(true);
}
}

我希望我做得对,我刚刚加入。如果我搞砸了,很抱歉。

我可以很好地运行这个程序

我只有在按下确认按钮时才会出现异常

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
    at Assingment5$1.actionPerformed(Assingment5.java:71)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
...
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:673)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)
我预计您也会遇到同样的问题,因为您发布的部分stacktrace来自事件线程,而您的
main
方法没有在EDT上运行。建议下次发布整个堆栈跟踪

ClassCastException
消息相当清楚:

Object q1input = q1spin.getValue();
int q1inputINT = Integer.parseInt((String) q1input);
在此代码段中,
q1input
变量已经是一个
整数
,而不是
字符串
,因为您将
SpinnerNumberModel
用作微调器的模型。把那些行改成

int q1inputINT = (Integer)q1spin.getValue();

您如何尝试运行此代码?在哪台机器上?我试着用eclipse在我的机器上运行你的代码,worksfine@upog:我同意。当然,代码有逻辑和语义问题,但它应该运行,除非出于某种原因,他以一种奇怪的方式运行它,或者在一台不允许他做某些事情的机器上运行。哎呀,是的,我忘了说它在按钮后出错,而不是在运行时,对此表示抱歉。这解决了问题!非常感谢你!