- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 Jtable 的新手,我需要一些帮助。我想编写以下代码来显示表中队列的数据
问题:数据没有出现在表格中
我不知道出了什么问题!!
我需要帮助,请
源代码:
//类(class)学生
public class student {
int id,age;
String fn,ln;
public student(int id,String fn,String ln,int age){
this.age = age;
this.id = id;
this.fn = fn;
this.ln = ln;
}
}
//类节点
public class node {
student info;
node link;
public node(student st,node next){
this.info = info;
this.link = link;
}
}
//类队列
import javax.swing.*;
public class Queue{
node front ,rear;
int length;
public void enqueue( student x){
node newnode=new node(x,null);
if(front==null)
front=rear=newnode;
else{
rear.link=newnode;
rear=newnode;
}length++;
}
public student dequeue(){
student temp=front.info;
if(front==null && rear==null){
throw new RuntimeException("empty");
}else{
front=front.link;
if(front==null)
rear=null;
length--;
}return temp;
}
public String[][] getData(){
Queue x= new Queue();
x.front= front;
x.rear = rear;
String s[][] = new String[x.length][4];
if(x.front==null){
JOptionPane.showMessageDialog(null,"the Queue is empty,you must add new student befor");
}else{
student tmp;
for(int i=0;i<x.length;i++){
try{
tmp = x.dequeue();
s[i][0] = tmp.id + " ";
s[i][1] = tmp.fn;
s[i][2] = tmp.ln;
s[i][3] = tmp.age + " ";
}catch(Exception e){
System.out.println("Exception from getData");
}
}
}
return s;
}
}
//类程序
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class program extends JFrame implements ActionListener{
Container c;
JTextField txtID,txtFN,txtLN,txtAge;
JLabel lblTitle,lblID,lblFN,lblLN,lblAge;
JButton btnAdd,btnUpdate,btnDelet,btnPrint,btnSort,btnRefresh,btnCancel;
JTable table;
String data[][];
Queue q;
public program(){
c = getContentPane();
setTitle(" Student Applicaion ");
c.setLayout(null);
q = new Queue();
// add lbl
lblTitle = new JLabel("ADD NEW STUDENT");
lblTitle.setFont(new Font ("Helvetica", Font.PLAIN, 20));
lblTitle.setBounds(50,20,200,20);
c.add(lblTitle);
lblID = new JLabel("ID");
lblID.setBounds(50,50,70,20);
c.add(lblID);
lblFN = new JLabel("First Name");
lblFN.setBounds(50,80,70,20);
c.add(lblFN);
lblLN = new JLabel("Last Name");
lblLN.setBounds(50,110,70,20);
c.add(lblLN);
lblAge = new JLabel("Age");
lblAge.setBounds(50,140,70,20);
c.add(lblAge);
// add txt
txtID = new JTextField();
txtID.setBounds(130,50,120,20);
c.add(txtID);
txtFN = new JTextField();
txtFN.setBounds(130,80,120,20);
c.add(txtFN);
txtLN = new JTextField();
txtLN.setBounds(130,110,120,20);
c.add(txtLN);
txtAge = new JTextField();
txtAge.setBounds(130,140,120,20);
c.add(txtAge);
// add btn
btnAdd = new JButton("Add");
btnAdd.setBounds(90,180,70,25);
c.add(btnAdd);
btnRefresh = new JButton("Refresh");
btnRefresh.setBounds(165,180,80,25);
c.add(btnRefresh);
btnUpdate = new JButton("Update");
btnUpdate.setBounds(300,50,100,20);
c.add(btnUpdate);
btnDelet = new JButton("Delet");
btnDelet.setBounds(300,80,100,20);
c.add(btnDelet);
btnPrint = new JButton("Print");
btnPrint.setBounds(300,110,100,20);
c.add(btnPrint);
btnSort = new JButton("Sort");
btnSort.setBounds(300,140,100,20);
c.add(btnSort);
btnCancel= new JButton("Cancel");
btnCancel.setBounds(355,435,80,25);
c.add(btnCancel);
// add table
// print();
btnAdd.addActionListener(this);
btnUpdate.addActionListener(this);
btnDelet.addActionListener(this);
btnPrint.addActionListener(this);
btnSort.addActionListener(this);
btnRefresh.addActionListener(this);
btnCancel.addActionListener(this);
setSize(450, 500);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public void actionPerformed(ActionEvent e){
if(e.getSource() == btnCancel)
System.exit(0);
else if(e.getSource() == btnRefresh){
txtAge.setText("");
txtFN.setText("");
txtID.setText("");
txtLN.setText("");
}
else if(e.getSource() == btnAdd){
if(isThreeDigit(txtID.getText().trim()) == false || isNumber(txtID.getText().trim()) == false)
JOptionPane.showMessageDialog(null,"you entered invalid ID");
else if(isCapital(txtFN.getText().trim()) == false)
JOptionPane.showMessageDialog(null,"you must begin First name with capital Character");
else if(!isString(txtFN.getText().trim()) || !(isString(txtLN.getText().trim())))
JOptionPane.showMessageDialog(null,"You can't enter number on your name");
else if(checkAge(txtAge.getText().trim()) == false)
JOptionPane.showMessageDialog(null,"You must enter real age in numbers format");
else{
student st = new student(Integer.parseInt(txtID.getText().trim()),txtFN.getText(),
txtLN.getText(),Integer.parseInt(txtAge.getText().trim()));
q.enqueue(st);
// print();
}
}
else if(e.getSource() == btnPrint){
print();
}
}
public void print(){
String col[] = {"ID","FName","LName","Age"};
data = q.getData();
table = new JTable(data,col);
// table.editingStopped(ChangeEvent e) ;
JScrollPane scrollPane = new JScrollPane(table);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
scrollPane.setBounds(10,230,420,200);
c.add(scrollPane);
}
//~~~~~~~~~~~~ Constraints
public boolean isThreeDigit(String id){
if(id.length() <= 3)
return true;
return false;
}
public boolean checkAge(String age){
if(!isNumber(age) || Integer.parseInt(age) > 90 || Integer.parseInt(age) < 6 )
return false;
return true;
}
public boolean isNumber(String id){
for(int i=0;i<id.length();i++){
char c=id.charAt(i);
if(c>'9'|| c<'0')
return false;
}
return true;
}
public boolean isString(String id){
for(int i=0;i<id.length();i++){
char c=id.charAt(i);
if(c<='9'|| c<='0')
return false;
}
return true;
}
public boolean isCapital(String FN){
char c=FN.charAt(0);
if(c>='A'&& c<='Z')
return true;
return false;
}
public static void main (String[] args) {
new program();
}
}
最佳答案
有两件事:
请使用大写字母作为类名的开头
自定义 TableModel 可能是个好主意。不要从头开始实现 TableModel,而是扩展 AbstractTableModel,因为它会处理所有事件和监听器方面,并且会为您节省大量时间。
关于java - 数据未出现在 JTable 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1846863/
我的应用程序从一个有 5 个选项卡的选项卡栏 Controller 开始。一开始,第一个出现了它的名字,但其他四个没有名字,直到我点击它们。然后根据用户使用的语言显示名称。如何在选项卡栏出现之前设置选
我有嵌套数组 json 对象(第 1 层、第 2 层和第 3 层)。我的问题是数据表没有出现。任何相关的 CDN 均已导入。该表仅显示部分。我引用了很多网站,但都没有解决我的问题。 之前我使用标准表来
我正在尝试设置要显示的 Parse PFLoginViewController。这是我的一个 View Controller 的类。 import UIKit import Parse import
我遇到了这个问题,我绘制的对象没有出现在 GUI 中。我知道它正在被处理,因为数据被推送到日志文件。但是,图形没有出现。 这是我的一些代码: public static void main(Strin
我有一个树状图,其中包含出现这样的词...... TreeMap occurrence = new TreeMap (); 字符串 = 单词 整数 = 出现次数。 我如何获得最大出现次数 - 整数,
因此,我提示用户输入变量。如果变量小于 0 且大于 10。如果用户输入 10,我想要求用户再次输入数字。我问时间的时候输入4,它说你输入错误。但在第二次尝试时效果很好。例如:如果我输入 25,它会打印
我已经用 css overflow 属性做了一个例子。在这个例子中我遇到了一个溢出滚动的问题。滚动条出现了,但没有工作意味着每当将光标移动到滚动条时,在这个滚动条不活动的时间。我对此一无所知,所以请帮
我现在正在做一个元素。当您单击一个元素时,会出现以下信息,我想知道如何在您单击下一个元素而不重新单击同一元素时使其消失....例如,我的元素中有披萨,我想单击肉披萨看到浇头然后点击奶酪披萨看到浇头和肉
我有一个路由器模块,它将主题与正则表达式进行比较,并将出现的事件与一致的键掩码链接起来。 (它是一个简单的 url 路由过滤,如 symfony http://symfony.com/doc/curr
这个问题在这里已经有了答案: 9年前关闭。 Possible Duplicate: mysql_fetch_array() expects parameter 1 to be resource, bo
我在底部有一个带有工具栏的 View ,我正在使用 NavigationLink 导航到该 View 。但是当 View 出现时,工具栏显示得有点太低了。大约半秒钟后,它突然跳到位。它只会在应用程序启
我试图在我的应用程序上为背景音乐添加一个 AVAudioPlayer,我正在主屏幕上启动播放器,尝试在应用程序打开时开始播放但出现意外行为... 它播放并立即不断创建新玩家并播放这些玩家,因此同时播放
这是获取一个数字,获取其阶乘并将其加倍,但是由于基本情况,如果您输入 0,它会给出 2 作为答案,因此为了绕过它,我使用了 if 语句,但收到错误输入“if”时解析错误。如果你们能提供帮助,我真的很感
暂停期间抛出异常 android.os.DeadObjectException 在 android.os.BinderProxy.transactNative( native 方法) 在 androi
我已经为猜词游戏编写了一些代码。它从用户输入中读取字符并在单词中搜索该字符;根据字符是否在单词中,程序返回并控制一些变量。 代码如下: import java.util.Random; import
我是自动化领域的新手。这是我的简单 TestNG 登录代码,当我以 TestNG 身份运行该代码时,它会出现 java.lang.NullPointerException,双击它会突出显示我导航到 U
我是c#程序员,我习惯了c#的封装语法和其他东西。但是现在,由于某些原因,我应该用java写一些东西,我现在正在练习java一天!我要创建一个为我自己创建一个虚拟项目,以便让自己更熟悉 Java 的
我正在使用 Intellij,我的源类是 main.com.coding,我的资源文件是 main.com.testing。我将 spring.xml 文件放入资源文件中。 我的测试类位于 test.
我想要我的tests folder separate到我的应用程序代码。我的项目结构是这样的 myproject/ myproject/ myproject.py moduleon
这个问题已经有答案了: What is a NullPointerException, and how do I fix it? (12 个回答) 已关闭 6 年前。 因此,我尝试比较 2 个值,一个
我是一名优秀的程序员,十分优秀!