亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將字符串數組設置為 jtable 列名,將 Apache poi excel

將字符串數組設置為 jtable 列名,將 Apache poi excel

忽然笑 2021-10-06 13:02:09
 jTable1.setModel(new javax.swing.table.DefaultTableModel(    new Object [][] {        {null, null, null},        {null, null, null},          },    new String [] {        class2.columnName[0],class2.columnName[1],class2.columnName[2]                        }));列名數組在 class2 中:static String[] columnName={"Name", "data" , "data2"};我想從 String[]String[] Columns 在 JTableJTable 中設置 3 列名稱。我通過使用硬編碼的數組索引號來做到這一點:但是如果我在數組中有數百個值,那么我如何通過使用數組值而不使用硬編碼的數組索引號而是使用任何其他較少鍵入的方式來設置 jtable 列名
查看完整描述

2 回答

?
千萬里不及你

TA貢獻1784條經驗 獲得超9個贊

如果數組從未以任何方式修改并且您想使用整個數組,那么您可以直接使用數組引用:


jTable1.setModel(new javax.swing.table.DefaultTableModel(

    new Object [][] {

        {Readsheet.Stringvalue, Readsheet.Stringvalue, Readsheet.Stringvalue},

        {Readsheet.Stringvalue, Readsheet.Stringvalue, Readsheet.Stringvalue},


    },

    Writesheet.Columns // <-- Array reference

));

如果可以修改數組,則可以創建整個數組的副本。有很多方法可以做到,我個人的偏好是Arrays.copyOf:


    Arrays.copyOf(Writesheet.Columns, Writesheet.Columns.length) // <-- Copy of the entire array

如果您只需要數組的連續部分,則可以創建數組切片的副本:


    Arrays.copyOfRange(Writesheet.Columns, 0, 3) // <-- Copy of a part of the array, indexes from 0 to 2

最后,如果您需要通過單獨的非連續索引提取元素并且不想Writesheet.Columns[...]多次鍵入,您可以使用索引流并使用Stream.map()以下方法提取值:


    IntStream.of(0, 1, 2) // <-- Indexes here

        .mapToObj(i -> Writesheet.Columns[i]).toArray()

更新:使用,作為分隔符將結果數組連接到字符串:


    IntStream.of(0, 1, 2) // <-- Indexes here

        .mapToObj(i -> Writesheet.Columns[i]).collect(Collectors.joining(","))


查看完整回答
反對 回復 2021-10-06
?
暮色呼如

TA貢獻1853條經驗 獲得超9個贊

new String[]{Writesheet.Columns[0], Writesheet.Columns[1], Writesheet.Columns[2]}

可以替換為對數組的引用


Writesheet.Columns

盡管


{Readsheet.Stringvalue, Readsheet.Stringvalue, Readsheet.Stringvalue}

可以替換為


Stream.generate(() -> Readsheet.Stringvalue).limit(3).toArray(String[]::new)

可以推廣到一個方法


public static <T> T[] generateArrayFromElement(T element, int size, IntFunction<T[]> arrayGeneratorFunction) {

    return Stream.generate(() -> element)

                 .limit(size)

                 .toArray(arrayGeneratorFunction);

}

...

generateArrayFromElement(Readsheet.Stringvalue, 3, String[]::new);

(我們生成單個元素的無限流,限制為所需大小,并收集到數組中)


或者


public static <T> T[] generateArrayFromElement2(T element, T[] array) {

    Arrays.fill(array, element);

    return array;

}

...

generateArrayFromElement2(Readsheet.Stringvalue, new String[3]);

(我們用一個元素填充給定的數組并返回它)


查看完整回答
反對 回復 2021-10-06
  • 2 回答
  • 0 關注
  • 140 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號