ここで少し問題があります。私は javamail API を使用して「受信トレイ」フォルダから電子メールを取得しています。その部分は完全に正常に動作します。問題は、以下のコードに示すように、電子メールを JTable に入れようとしていることです。
try
{
inbox.open(Folder.READ_ONLY);
final Message[] messages = inbox.getMessages(1,20);
System.out.println("NUMBER OF MESSAGES: " + inbox.getMessageCount());
String[] colHead = {"Subject", "Send Date"};
for( int i = 0; i < messages.length; i++)
{
String[] heads = {"Subject", "Sender", "Send Date", "Content"};
Object[][] data = {
{messages[i].getSubject(), (InternetAddress.toString(messages[i].getFrom())), messages[i].getReceivedDate(), messages[i].getContent()}
};
final JTable table = new JTable(data, heads);
final int xyz = i;
panel_6.add(table);
props2 プロパティは上記で次のように定義されています。
Properties props2 = new Properties();
props2.setProperty("mail.store.protocol", "imaps");
try
{
Session session = Session.getDefaultInstance(props2, null);
Store store = session.getStore("imaps");
store.connect(imapServer, imapUser, imapPass);
Folder inbox = store.getFolder("Inbox");
私が抱えている問題は、その JTable をスクロール可能にしたいということですが、JScrollPane jsp = new JScrollPane(table) を作成し、テーブルの代わりにそれを panel_6 に追加すると、テーブルには 1 つの結果しか表示されません。 20 の代わりに、inbox.getMessages(1,20); から取得する必要があります。テーブルをスクロールできないままにしておくと、正常に動作します。何かできることはありますか? ありがとう!