- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我还没有完全完成代码,但在创建 GUI 后,我遇到了问题,使 cardLayout 能够从一个面板切换到下一个面板。我想要发生的是,您可以单击“添加”按钮,然后可以添加一名学生的所有信息,并将其显示在 displayAll 面板上(尚未编写该代码)。但是我收到很多错误,但不知道为什么。
import javax.swing.*;
import java.awt.*;
import java.util.ArrayList;
import java.util.Scanner;
import java.awt.event.*;
public class Lab12 extends JFrame{
private static final long serialVersionUID = 1L;
Scanner input = new Scanner(System.in);
private JButton add;
private JButton remove;
private JButton sort;
private JButton enterAdd;
private JButton enterRemove;
private JButton enterSort;
public String FirstName;
public String LastName;
public String Major;
public String GPA;
public String UIN;
public String NetID;
public String Age;
public String Gender;
private JLabel FNameLbl;
private JLabel LNameLbl;
private JLabel MajorLbl;
private JLabel GPALbl;
private JLabel UINLbl;
private JLabel NetIDLbl;
private JLabel AgeLbl;
private JLabel GenderLbl;
private JTextField FNameTxt;
private JTextField LNameTxt;
private JTextField MajorTxt;
private JTextField GPATxt;
private JTextField UINTxt;
private JTextField NetIDTxt;
private JTextField AgeTxt;
private JComboBox GenderCmbo;
private JRadioButton Student1;
private JRadioButton Student2;
private JRadioButton Student3;
private JRadioButton Student4;
private JRadioButton Student5;
private JRadioButton Student6;
private JRadioButton Student7;
private JRadioButton Student8;
private JRadioButton Student9;
private JRadioButton Student10;
private JRadioButton FNameRB;
private JRadioButton LNameRB;
private JRadioButton MajorRB;
private JRadioButton GPARB;
private JRadioButton UINRB;
private JRadioButton NetIDRB;
private JRadioButton AgeRB;
private JRadioButton GenderRB;
@SuppressWarnings("rawtypes")
static DefaultListModel listStudents;
private static JList<String>list;
private JPanel combo;
private JPanel selection;
private JPanel addInfo;
private JPanel removeInfo;
private JPanel sortInfo;
private JPanel displayAll;
private JPanel placeHolder;
public static ArrayList <Student> students;
public Lab12(){
FirstName = " ";
LastName = " ";
Major = " ";
GPA = " ";
UIN = " ";
NetID = " ";
Age = " ";
Gender = " ";
String Add = "Add";
String Remove = "Remove";
String Sort = "Sort";
String Display = "Display";
final ArrayList <Student> students = new ArrayList<Student>(10);
add = new JButton("Add");
remove = new JButton("Remove");
sort = new JButton("Sort");
enterAdd = new JButton("Enter");
enterRemove = new JButton("Enter");
enterSort = new JButton("Enter");
FNameLbl = new JLabel("First Name: ");
LNameLbl = new JLabel("Last Name: ");
MajorLbl = new JLabel("Major: ");
GPALbl = new JLabel("GPA: ");
UINLbl = new JLabel("UIN: ");
NetIDLbl = new JLabel("NetID: ");
AgeLbl = new JLabel("Age: ");
GenderLbl = new JLabel("Gender: ");
FNameTxt = new JTextField();
LNameTxt = new JTextField();
MajorTxt = new JTextField();
GPATxt = new JTextField();
UINTxt = new JTextField();
NetIDTxt = new JTextField();
AgeTxt = new JTextField();
GenderCmbo = new JComboBox(new String[]{"Male", "Female"});
Student1 = new JRadioButton();
Student2 = new JRadioButton();
Student3 = new JRadioButton();
Student4 = new JRadioButton();
Student5 = new JRadioButton();
Student6 = new JRadioButton();
Student7 = new JRadioButton();
Student8 = new JRadioButton();
Student9 = new JRadioButton();
Student10 = new JRadioButton();
FNameRB = new JRadioButton("First Name");
LNameRB = new JRadioButton("Last Name");
MajorRB = new JRadioButton("Major");
GPARB = new JRadioButton("GPA");
UINRB = new JRadioButton("UIN");
NetIDRB = new JRadioButton("NetID");
AgeRB = new JRadioButton("Age");
GenderRB = new JRadioButton("Gender");
listStudents = new DefaultListModel();
list = new JList(listStudents);
combo = new JPanel(new CardLayout());
selection = new JPanel();
addInfo = new JPanel();
removeInfo = new JPanel();
sortInfo = new JPanel();
displayAll = new JPanel();
placeHolder = new JPanel();
//create panel for displaying all students- should stay on screen
displayAll.setLayout(new FlowLayout());
displayAll.add(list);
//create panel for adding info for a student
addInfo.setLayout(new GridLayout(9,2,5,5));
addInfo.add(FNameLbl);
addInfo.add(LNameLbl);
addInfo.add(MajorLbl);
addInfo.add(GPALbl);
addInfo.add(UINLbl);
addInfo.add(NetIDLbl);
addInfo.add(AgeLbl);
addInfo.add(GenderLbl);
addInfo.add(FNameTxt);
addInfo.add(LNameTxt);
addInfo.add(MajorTxt);
addInfo.add(GPATxt);
addInfo.add(UINTxt);
addInfo.add(NetIDTxt);
addInfo.add(AgeTxt);
addInfo.add(GenderCmbo);
addInfo.add(enterAdd);
//create panel for selecting the student to remove
removeInfo.setLayout(new GridLayout(9,1,5,5));
removeInfo.add(Student1);
removeInfo.add(Student2);
removeInfo.add(Student3);
removeInfo.add(Student4);
removeInfo.add(Student5);
removeInfo.add(Student6);
removeInfo.add(Student7);
removeInfo.add(Student8);
removeInfo.add(Student9);
removeInfo.add(Student10);
removeInfo.add(enterRemove);
//create panel for selecting which property to sort
sortInfo.setLayout(new GridLayout(9,1,5,5));
sortInfo.add(FNameRB);
sortInfo.add(LNameRB);
sortInfo.add(MajorRB);
sortInfo.add(GPARB);
sortInfo.add(UINRB);
sortInfo.add(NetIDRB);
sortInfo.add(AgeRB);
sortInfo.add(GenderRB);
sortInfo.add(enterSort);
//create panel for the cardLayout
combo.add(displayAll, Display);
combo.add(addInfo, Add);
combo.add(removeInfo, Remove);
combo.add(sortInfo, Sort);
//create permanent panel for the buttons
selection.setLayout(new GridLayout(3,1,5,5));
selection.add(add);
selection.add(remove);
selection.add(sort);
//combine the selection and the shifting combo panel to one panel to add to the whole screen
placeHolder.setLayout(new FlowLayout());
placeHolder.add(selection);
placeHolder.add(combo);
//add to the main screen
add(placeHolder);
//add all event handling below
//gives action to "add"
add.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
CardLayout combo = (CardLayout) addInfo.getLayout();
combo.show(addInfo, "add");
}
}
);
//this obtains all info for each student
enterAdd.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
FirstName = FNameTxt.getText();
LastName = LNameTxt.getText();
Major = MajorTxt.getText();
GPA = GPATxt.getText();
UIN = UINTxt.getText();
NetID = NetIDTxt.getText();
Age = AgeTxt.getText();
Gender = (String) GenderCmbo.getSelectedItem();
students.add(new Student (FirstName, LastName, Major, GPA, UIN, NetID, Age, Gender));
(listStudents).addElement(students.get(students.lastIndexOf(students)));
}
}
);
}
public static void display(ArrayList<Student> students){
for (int n = 0; n < 10; n++) {
Student Student = students.get(n);
System.out.println(n + ": " + ((Student)students.get(n)).getFName() + ", " + ((Student)students.get(n)).getLName() + ", " + ((Student)students.get(n)).getMajor() + ", " + ((Student)students.get(n)).getGPA() + ", " + ((Student)students.get(n)).getUIN() + ", " + ((Student)students.get(n)).getNetID() + ", " + ((Student)students.get(n)).getAge() + ", " + ((Student)students.get(n)).getGender());
}
System.out.println("");
}
@SuppressWarnings("unchecked")
public static void populateJList(ArrayList<Student> students){
for(int n = 0; n < 10; n++){
(listStudents).addElement(students.get(n));
}
}
public static void main(String[] args) {
Lab12 frame = new Lab12();
frame.setTitle("Student Database");
frame.setSize(700,700);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
我遇到的错误是:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.awt.GridLayout cannot be cast to java.awt.CardLayout
at Lab12$1.actionPerformed(Lab12.java:228)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
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)
我试图使用这些作为指南: http://docs.oracle.com/javase/tutorial/uiswing/layout/card.html Changing Panels using the Card layout
如有任何帮助,我们将不胜感激。错误没有任何行,所以我不知道从哪里开始。谢谢!
最佳答案
好吧,我费力地浏览了你的代码,我看到了这个:
addInfo.setLayout(new GridLayout(9, 2, 5, 5));
然后是这个:
CardLayout combo = (CardLayout) addInfo.getLayout();
您正在将 JPanel 的布局转换为它未使用的布局。
所以这个错误是不言自明的:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.awt.GridLayout cannot be cast to java.awt.CardLayout
解决方案:不要这样做!不要将对象(此处为 GridLayout)转换为它不是的对象(此处为 CardLayout)。如果您希望组件使用 CardLayout,首先必须将 CardLayout 添加到容器中。
所有这一切的教训:批判性地阅读异常消息,因为它通常会准确告诉您您做错了什么。对于你的情况来说确实如此。
关于java - 泵事件错误cardLayout Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20183236/
我已经使用 vue-cli 两个星期了,直到今天一切正常。我在本地建立这个项目。 https://drive.google.com/open?id=0BwGw1zyyKjW7S3RYWXRaX24tQ
您好,我正在尝试使用 python 库 pytesseract 从图像中提取文本。请找到代码: from PIL import Image from pytesseract import image_
我的错误 /usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference
我已经训练了一个模型,我正在尝试使用 predict函数但它返回以下错误。 Error in contrasts<-(*tmp*, value = contr.funs[1 + isOF[nn]])
根据Microsoft DataConnectors的信息我想通过 this ODBC driver 创建一个从 PowerBi 到 PostgreSQL 的连接器使用直接查询。我重用了 Micros
我已经为 SoundManagement 创建了一个包,其中有一个扩展 MediaPlayer 的类。我希望全局控制这个变量。这是我的代码: package soundmanagement; impo
我在Heroku上部署了一个应用程序。我正在使用免费服务。 我经常收到以下错误消息。 PG::Error: ERROR: out of memory 如果刷新浏览器,就可以了。但是随后,它又随机发生
我正在运行 LAMP 服务器,这个 .htaccess 给我一个 500 错误。其作用是过滤关键字并重定向到相应的域名。 Options +FollowSymLinks RewriteEngine
我有两个驱动器 A 和 B。使用 python 脚本,我在“A”驱动器中创建一些文件,并运行 powerscript,该脚本以 1 秒的间隔将驱动器 A 中的所有文件复制到驱动器 B。 我在 powe
下面的函数一直返回这个错误信息。我认为可能是 double_precision 字段类型导致了这种情况,我尝试使用 CAST,但要么不是这样,要么我没有做对...帮助? 这是错误: ERROR: i
这个问题已经有答案了: Syntax error due to using a reserved word as a table or column name in MySQL (1 个回答) 已关闭
我的数据库有这个小问题。 我创建了一个表“articoli”,其中包含商品的品牌、型号和价格。 每篇文章都由一个 id (ID_ARTICOLO)` 定义,它是一个自动递增字段。 好吧,现在当我尝试插
我是新来的。我目前正在 DeVry 在线学习中级 C++ 编程。我们正在使用 C++ Primer Plus 这本书,到目前为止我一直做得很好。我的老师最近向我们扔了一个曲线球。我目前的任务是这样的:
这个问题在这里已经有了答案: What is an undefined reference/unresolved external symbol error and how do I fix it?
我的网站中有一段代码有问题;此错误仅发生在 Internet Explorer 7 中。 我没有在这里发布我所有的 HTML/CSS 标记,而是发布了网站的一个版本 here . 如您所见,我在列中有
如果尝试在 USB 设备上构建 node.js 应用程序时在我的树莓派上使用 npm 时遇到一些问题。 package.json 看起来像这样: { "name" : "node-todo",
在 Python 中,您有 None单例,在某些情况下表现得很奇怪: >>> a = None >>> type(a) >>> isinstance(a,None) Traceback (most
这是我的 build.gradle (Module:app) 文件: apply plugin: 'com.android.application' android { compileSdkV
我是 android 的新手,我的项目刚才编译和运行正常,但在我尝试实现抽屉导航后,它给了我这个错误 FAILURE: Build failed with an exception. What wen
谁能解释一下?我想我正在做一些非常愚蠢的事情,并且急切地等待着启蒙。 我得到这个输出: phpversion() == 7.2.25-1+0~20191128.32+debian8~1.gbp108
我是一名优秀的程序员,十分优秀!