Java 将外部类(JTable)插入Jpanel

Java 将外部类(JTable)插入Jpanel,java,swing,object,calendar,jtable,Java,Swing,Object,Calendar,Jtable,我目前正在从事一个项目,在这个项目中,我必须在Jpanel中插入一个Jtable(日历)。 问题是我找不到一种方法使它在面板中工作(它甚至没有出现)。 部分原因是因为我没有一个对象来填充表格,而这正是我需要帮助的地方,因为我找不到一种方法来让它工作 import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.table.*; class Calendar{ int month = ja

我目前正在从事一个项目,在这个项目中,我必须在Jpanel中插入一个Jtable(日历)。 问题是我找不到一种方法使它在面板中工作(它甚至没有出现)。 部分原因是因为我没有一个对象来填充表格,而这正是我需要帮助的地方,因为我找不到一种方法来让它工作

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

class Calendar{
int month = java.util.Calendar.getInstance().get(java.util.Calendar.MONTH);
int year = java.util.Calendar.getInstance().get(java.util.Calendar.YEAR);;
JLabel l = new JLabel("", JLabel.CENTER);
String day = "";
JTable d;
JButton[] button = new JButton[49];

public Calendar() {
        String[] header = { "Sun", "Mon", "Tue", "Wed", "Thur", "Fri", "Sat" };

        d = new JTable(header, 0);
        DefaultTableModel calModel = new DefaultTableModel();    

        d.setBounds(20, 200, 500, 350);


        for (int x = 0; x < button.length; x++) {
                final int selection = x;
                button[x] = new JButton();
                button[x].setFocusPainted(false);
                button[x].setBackground(Color.white);
                if (x > 6)
                        button[x].addActionListener(new ActionListener() {
                                public void actionPerformed(ActionEvent ae) {
                                        day = button[selection].getActionCommand();

                                }
                        });
                if (x < 7) {
                        button[x].setText(header[x]);
                        button[x].setForeground(Color.red);
                }
                d.add(button[x]);
        }

        JButton previous = new JButton("<< Previous");
        previous.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent ae) {
                        month--;
                        displayDate();
                }
        });

        JButton next = new JButton("Next >>");
        next.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent ae) {
                        month++;
                        displayDate();
                }
        });



        displayDate();

}
public void displayDate() {
        for (int x = 7; x < button.length; x++)
                button[x].setText("");
        java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(
                        "MMMM yyyy");
        java.util.Calendar cal = java.util.Calendar.getInstance();
        cal.set(year, month, 1);
        int dayOfWeek = cal.get(java.util.Calendar.DAY_OF_WEEK);
        int daysInMonth = cal.getActualMaximum(java.util.Calendar.DAY_OF_MONTH);
        for (int x = 6 + dayOfWeek, day = 1; day <= daysInMonth; x++, day++)
                button[x].setText("" + day);
        l.setText(sdf.format(cal.getTime()));

}

}
import java.awt.*;
导入java.awt.event.*;
导入javax.swing.*;
导入javax.swing.table.*;
课堂日历{
int month=java.util.Calendar.getInstance().get(java.util.Calendar.month);
int year=java.util.Calendar.getInstance().get(java.util.Calendar.year);;
JLabel l=新JLabel(“,JLabel.CENTER”);
字符串日期=”;
JTable d;
JButton[]按钮=新JButton[49];
公历(){
字符串[]头={“Sun”、“Mon”、“Tue”、“Wed”、“Thur”、“Fri”、“Sat”};
d=新的JTable(标题,0);
DefaultTableModel calModel=新的DefaultTableModel();
d、 立根(20200500350);
用于(int x=0;x6)
按钮[x].addActionListener(新建ActionListener()){
已执行的公共无效行动(行动事件ae){
day=按钮[选择]。getActionCommand();
}
});
if(x<7){
按钮[x].setText(标题[x]);
按钮[x]。设置前景(颜色为红色);
}
d、 添加(按钮[x]);
}
JButton previous=新JButton(“>”);
next.addActionListener(新ActionListener(){
已执行的公共无效行动(行动事件ae){
月份++;
显示日期();
}
});
显示日期();
}
公开作废显示日期(){
用于(int x=7;x对于(INTX=6+dayOfWeek,day=1;day d=新JTable(页眉,0);为什么在构造函数中为零?为什么将cloumn数组放在数据数组的位置,而将零放在cloumn数组的位置?@KickButtowski感谢您的快速回复。我知道我必须为列创建一个数组,我需要知道如何创建该数组以正确填充表(这就是我将0作为列的原因).你能帮我吗?你有cloumn的数组,它是你的头数组,你需要2乘2数组或向量来填充你的jtable中的数据看看jtable构造函数,你的意思是创建一个
对象[]行={strings from 1 to 31}