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