안녕하세요.이 퍼즐을 해결하는 데 어려움이 있습니다. 교수님이 코드를 작성하고 열 머리를 클릭 할 수 있도록 변경하라고 알려 주셨습니다. 누구든지 나를 변경할 수 있습니다.스윙의 JTable 클릭 가능 헤더
package academic.emailClient.view;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.util.ArrayList;
import java.util.Date;
import java.util.Vector;
import javax.swing.*;
import javax.swing.table.*;
import academic.emailClient.model.Message;
import academic.emailClient.view.entities.MessageView;
public class MailBox extends JFrame {
JTable tableinbox;
private final int MAILBOX_FRAME_WIDTH = 1080;
private final int MAILBOX_FRAME_HEIGHT = 650;
static final boolean VISIBLE = true;
public MailBox() {
Object[] columnNamesinbox = { "Boolean", "Sender", "Subject", "Body" };
Object[][] datainbox = {
{ false, "[email protected]", "D", "T" },
{ false, "[email protected]", "projhsdject work", "I " },
{ false, "[email protected]", "Job Placement","Iut that" },
{ true, "[email protected]", "s1", "as" }
};
DefaultTableModel modelinbox = new DefaultTableModel(datainbox,
columnNamesinbox);
tableinbox = new JTable(modelinbox) {
@Override
public Class getColumnClass(int columninbox) {
switch (columninbox) {
case 0:
return Boolean.class;
case 1:
return String.class;
case 2:
return String.class;
case 3:
return String.class;
default:
return Boolean.class;
}
}
};
tableinbox.setBackground(Color.lightGray);
tableinbox.setGridColor(new Color(0,128,0));
JTableHeader inboxheader = tableinbox.getTableHeader();
inboxheader.setBackground(Color.DARK_GRAY);
inboxheader.setForeground(Color.white);
}
public int getMesssagesCount(int i) {
return 0;
}
public int GetCheckedItemsNumber(int i) {
return 0;
}
public Object[][] GetCheckedItems() {
return GetCheckedItems();
}
public Object[][] GetMail() {
return GetMail();
}
public Object[][] OrderByDate() {
return OrderByDate();
}
public Object[][] OrderBySender() {
return OrderBySender();
}
public Object[][] OrderBySubject() {
return OrderBySubject();
}
public JTable getMailBox() {
return tableinbox;
}
public void run() {
JFrame MailBoxFrame = new JFrame();
MailBoxFrame.setMaximumSize(new Dimension(MAILBOX_FRAME_WIDTH, MAILBOX_FRAME_HEIGHT));
MailBoxFrame.setPreferredSize(new Dimension(MAILBOX_FRAME_WIDTH, MAILBOX_FRAME_HEIGHT));
MailBoxFrame.setBounds(0, 0, MAILBOX_FRAME_WIDTH, MAILBOX_FRAME_HEIGHT);
MailBoxFrame.setVisible(VISIBLE);
MailBoxFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
[마우스 수신기 작성 방법] (http://docs.oracle.com/javase/tutorial/uiswing/events/mouselistener.html)을 참조하십시오. 또한 Java 명명 규칙을 따르십시오. 'MailBoxFrame' - 변수 이름은 대문자로 시작하면 안됩니다. 'MAILBOX_FRAME_WIDTH' - "static final"변수 만 완전히 대문자 여야합니다. – camickr
및 int i = inboxheader.columnAtPoint (e.getPoint()); 성공을 위해 휴식입니다. – mKorbel