簡體   English   中英

用戶從JTable刪除一行

[英]User deleting a row from a JTable

我已經在工作中創建了一個程序,此后又被要求向其中添加功能。 當前程序:

  1. 允許用戶上傳XML文件。
  2. XML文件被解析並保存到數組列表中。
  3. 將使用來自數組列表的數據填充JTable。
  4. 用戶可以根據需要編輯JTable,然后單擊“保存”。
  5. 數據被放回XML文件中,並以新名稱保存。

盡管此方法運行良好,但仍要求我添加一個新功能,即行刪除。 當前,在JTable中為任何上載的XML文件生成了60列(該程序用於一種特定類型的XML文件,該XML文件始終具有60個包含屬性的節點)。 但是,對於上傳的文件,可能有任意數量的“交易”包含大約50-55個屬性。 因此,如果有5個事務,則填充表的方式將有5行。

因此,為了更好地解釋XML文件(我不能共享它們,因為它們包含敏感信息),我們可能

<Group Tag (This only appears once in any XML)>
<Group Tag (This only appears once in any XML)>
<Transaction 1 (This contains about 55 sub-nodes with attributes)>
<Transaction 2 (This contains the same nodes as #1 with different attributes)>

我需要為用戶增加能夠從JTable刪除這些事務(或行)之一的能力,我不知道該怎么做。 如何刪除整行? 我將在下面發布一些代碼,以幫助您更好地了解我的工作。

圖形用戶界面

package gui;

import java.awt.BorderLayout;
import java.awt.Dimension;

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

import mainClasses.MainClass;

import parsing.WriteParser;
import parsing.XMLParser;

public class MainGui 

{
    public static int counter;
    public static int counter2;
    public static JTable tbl;
    public static int currentRow;

    public static void createGUI(){

        counter=XMLParser.NtryRefAL.size();
        counter2=counter;

        final JFrame frame = new JFrame("CamT54 Builder");
        JPanel mainPanel = new JPanel(new BorderLayout());
        JPanel panelNorth = new JPanel(new BorderLayout());
        JPanel panelSouth = new JPanel(new BorderLayout());
        JPanel buttonPanel = new JPanel(new FlowLayout());

        JButton uploadButton = new JButton("Upload");
        uploadButton.setPreferredSize(new Dimension(150,40));
        buttonPanel.add(uploadButton);

        JButton saveButton = new JButton("Save Changes");
        saveButton.setPreferredSize(new Dimension(150,40));
        buttonPanel.add(saveButton);

        //Creates the JTable
        tbl = new JTable();
        DefaultTableModel dtm = new DefaultTableModel(){
            boolean[] canEdit = new boolean[]{

                    //Each true represents a column, there are 15 columns for each line of booleans. 
                    false,false,false,false,false,false,false,false,true,true,true,true,true,false,false,
                    true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,
                    true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,
                    true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,
            };
            public boolean isCellEditable(int rowIndex, int columnIndex){
                return canEdit[columnIndex];
            }
        };
        //Creates the column headers for all 60 columns. 
        String header[] = new String[]{"GrpHdr MsgRcpt Id", "GroupHdr CreDtTm", "GrpHdr MsgId", "Ntfctn Id", "Ntfctn CreDtTm",
                "Ntfctn Acct Id", "TxsSummry NbOfNtries", "TxsSummry Sum", "Ntry xmlns Sts", "Ntry Ref", "Ntry xmlns RsvlInd",
                "Ntry xmlns CdtDbtInd", "Ntry xmlns AddlNtryInf", "Ntry xmlns Amt Ccy", "TxDtls Amt Ccy", "TxDtls CdtDbtInd",
                "BkTxCd Cd", "Refs MsgId", "Refs PmtInfId", "Refs InstrId", "Refs EndToEndId","Refs TxId", "RltdPties InitgPty Id",
                "RltdPties Dbtr Nm", "RltdPties DbtrAcct Prtry", "RltdPties DbtrAcct Id", "RltdPties Cdtr Id", "RltdPties CdtrAcct Id",
                "RltdAgts DbtrAgt Cd", "RltdAgts DbtrAgt MmbId", "RltdAgts CdtrAgt Cd", "RltdAgts CdtrAgt MmbId", 
                "RltdAgts CdtrAgt Nm", "RmtInf RfrdDocInf Nb", "RmfInf RfrdDocInf Cd", "RmtInf Amt Ccy", "RmtInf CdtDbtInd", 
                "RmtInf AddiInf", "RmtInf Prtry", "RmtInf Ref", "RltdDts IntrBkSttlmDt", "RltdDts TxDtTm", "SplmtryData RmtCaptureDt",
                "SplmtryData RmtRcvdDt", "SplmtryData RmtProcDT", "SplmtryData PayInstrmnt", "SplmtryData PayTpCd", "SplmtryData PrimaryCustId",
                "SplmtryData EnrollmentId", "SplmtryData CardAcctTp", "SplmtryData PassThruData", "SplmtryData RmtRepresmtDt", 
                "SplmtryData RmtFinalDt","SplmtryData RunSettledDt", "SplmtryData RmtPaidDt", "SplmtryData ClrgMop",
                "SplmtryData ClrgAcct", "SplmtryData JobId", "SplmtryData NachaTransCd", 
                "SplmtryData TransTp"};

            dtm.setColumnIdentifiers(header);

            tbl.setModel(dtm);




            for(int count = XMLParser.NtryRefAL.size(); count >0; count--){

                //Takes the data from the XML parser (that is saved into Arrays) and fills it into the 
                //table as new rows for each transaction. 
                dtm.addRow(new Object[]{XMLParser.MsgRcptS,XMLParser.CreDtTmS,XMLParser.MsgIdS,XMLParser.NtfctnIdS,
                        XMLParser.NtfctnCreDtTmS,XMLParser.AcctIdS,XMLParser.NbOfNtriesS,XMLParser.SumS,
                        XMLParser.StsAL.get(0),XMLParser.NtryRefAL.get(0),XMLParser.RsvlIndAL.get(0),XMLParser.CdtDbtIndAL.get(0),
                        XMLParser.AddtlNtryInfAL.get(0),XMLParser.AmtCcyAL.get(0),XMLParser.TxDtlsAmtAL.get(0),
                        XMLParser.TxDtlsCdtDbtIndAL.get(0),XMLParser.BkTxCdAL.get(0),XMLParser.TxDtlsMsgIdAL.get(0),
                        XMLParser.PmtInfIdAL.get(0),XMLParser.InstrIdAL.get(0), XMLParser.EndToEndIdAL.get(0),
                        XMLParser.TxIdAL.get(0),XMLParser.InitgPtyIdAL.get(0), XMLParser.DbtrAL.get(0),
                        XMLParser.DbtrAcctPrtryAL.get(0),XMLParser.DbtrAcctIdAL.get(0), XMLParser.CdtrIdAL.get(0),
                        XMLParser.CdtrAcctIdAL.get(0), XMLParser.ClrSysIdCdAL.get(0), XMLParser.MmbIdAL.get(0),
                        XMLParser.CdtrAgtClrSysIdCdAL.get(0), XMLParser.CdtrAgtMmbIdAL.get(0), XMLParser.FinInstnIdNmAL.get(0),
                        XMLParser.RfrdDocInfNbAL.get(0), XMLParser.RfrdDocInfTpAL.get(0), XMLParser.AdjstmntAmtAndRsnAmtCcyAL.get(0),
                        XMLParser.AdjstmntAmtAndRsnCdtDbtIndAL.get(0), XMLParser.AdjstmntAmtAndRsnAddtlInfAL.get(0),
                        XMLParser.CdtrRefInfTpAL.get(0), XMLParser.CdtrRefInfRefAL.get(0), XMLParser.IntrBkSttlmDtAL.get(0),
                        XMLParser.TxDtTmAL.get(0), XMLParser.RmtCaptureDtAL.get(0), XMLParser.RmtRcvdDtAL.get(0), 
                        XMLParser.RmtProcDtAL.get(0), XMLParser.PayInstrmntAL.get(0), XMLParser.PayTpCdAL.get(0), 
                        XMLParser.PrimaryCustIdAL.get(0), XMLParser.EnrollmentIdAL.get(0), XMLParser.CardAcctTpAL.get(0), 
                        XMLParser.PassThruDataAL.get(0), XMLParser.RmtRepresmtDtAL.get(0), XMLParser.RmtFinalDtAL.get(0), 
                        XMLParser.RmtSettledDtAL.get(0), XMLParser.RmtPaidDtAL.get(0), XMLParser.ClrgMopAL.get(0),
                        XMLParser.ClrgAcctAL.get(0), XMLParser.JobIdAL.get(0), XMLParser.NachaTransCdAL.get(0), 
                        XMLParser.TransTpAL.get(0)});

                //Removes the first item in the array so the next 
                //item can be written during the second 
                //iteration
                XMLParser.NtryRefAL.remove(0);
                XMLParser.AmtCcyAL.remove(0);
                XMLParser.CdtDbtIndAL.remove(0);
                XMLParser.StsAL.remove(0);
                XMLParser.AddtlNtryInfAL.remove(0);
                XMLParser.BkTxCdAL.remove(0);
                XMLParser.TxDtlsAmtAL.remove(0);
                XMLParser.TxDtlsCdtDbtIndAL.remove(0);
                XMLParser.TxDtlsMsgIdAL.remove(0);
                XMLParser.PmtInfIdAL.remove(0);
                XMLParser.InstrIdAL.remove(0);
                XMLParser.EndToEndIdAL.remove(0);
                XMLParser.TxIdAL.remove(0);
                XMLParser.RsvlIndAL.remove(0);
                XMLParser.InitgPtyIdAL.remove(0);
                XMLParser.DbtrAL.remove(0);
                XMLParser.DbtrAcctIdAL.remove(0);
                XMLParser.DbtrAcctPrtryAL.remove(0);
                XMLParser.CdtrIdAL.remove(0);
                XMLParser.CdtrAcctIdAL.remove(0);
                XMLParser.MmbIdAL.remove(0);
                XMLParser.ClrSysIdCdAL.remove(0);
                XMLParser.FinInstnIdNmAL.remove(0);
                XMLParser.CdtrAgtMmbIdAL.remove(0);
                XMLParser.CdtrAgtClrSysIdCdAL.remove(0);
                XMLParser.RfrdDocInfNbAL.remove(0);
                XMLParser.RfrdDocInfTpAL.remove(0);
                XMLParser.AdjstmntAmtAndRsnAmtCcyAL.remove(0);
                XMLParser.AdjstmntAmtAndRsnCdtDbtIndAL.remove(0);
                XMLParser.AdjstmntAmtAndRsnAddtlInfAL.remove(0);
                XMLParser.CdtrRefInfTpAL.remove(0);
                XMLParser.CdtrRefInfRefAL.remove(0);
                XMLParser.IntrBkSttlmDtAL.remove(0);
                XMLParser.TxDtTmAL.remove(0);
                XMLParser.RmtCaptureDtAL.remove(0);
                XMLParser.RmtRcvdDtAL.remove(0);
                XMLParser.RmtProcDtAL.remove(0);
                XMLParser.PayInstrmntAL.remove(0);
                XMLParser.PayTpCdAL.remove(0);
                XMLParser.PrimaryCustIdAL.remove(0);
                XMLParser.EnrollmentIdAL.remove(0);
                XMLParser.CardAcctTpAL.remove(0);
                XMLParser.PassThruDataAL.remove(0);
                XMLParser.RmtRepresmtDtAL.remove(0);
                XMLParser.RmtFinalDtAL.remove(0); 
                XMLParser.RmtSettledDtAL.remove(0);
                XMLParser.RmtPaidDtAL.remove(0);
                XMLParser.ClrgMopAL.remove(0);
                XMLParser.ClrgAcctAL.remove(0);
                XMLParser.JobIdAL.remove(0);
                XMLParser.NachaTransCdAL.remove(0);
                XMLParser.TransTpAL.remove(0);



            }

            tbl.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);


            tbl.getColumnModel().getColumn(0).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(1).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(2).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(3).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(4).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(5).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(6).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(7).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(8).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(9).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(10).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(11).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(12).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(13).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(14).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(15).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(16).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(17).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(18).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(19).setPreferredWidth(280);
            tbl.getColumnModel().getColumn(20).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(21).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(22).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(23).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(24).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(25).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(26).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(27).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(28).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(29).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(30).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(31).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(32).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(33).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(34).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(35).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(36).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(37).setPreferredWidth(200);
            tbl.getColumnModel().getColumn(38).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(39).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(40).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(41).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(42).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(43).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(44).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(45).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(46).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(47).setPreferredWidth(200);
            tbl.getColumnModel().getColumn(48).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(49).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(50).setPreferredWidth(600);
            tbl.getColumnModel().getColumn(51).setPreferredWidth(200);
            tbl.getColumnModel().getColumn(52).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(53).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(54).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(55).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(56).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(57).setPreferredWidth(150);
            tbl.getColumnModel().getColumn(58).setPreferredWidth(200);
            tbl.getColumnModel().getColumn(59).setPreferredWidth(150);



            //Allows the user to upload a new XML file which will be parsed
            //and the table will be populated. 
            uploadButton.addActionListener(new ActionListener(){

                public void actionPerformed(ActionEvent ae){

                    FileHandling fHandling = new FileHandling();
                    fHandling.getFile();
                    XMLParser parse = new XMLParser();
                    parse.parseXML();
                    frame.dispose();
                    MainGui.createGUI();
                }
            });

            //Allows the user to save the edited table. All table values will be saved 
            //back into the initial arrays (which are now empty), which will then 
            //be parsed into a new array.
            saveButton.addActionListener(new ActionListener(){

                public void actionPerformed(ActionEvent ae){

                    currentRow=0;

                    if(null != tbl.getCellEditor()){
                        tbl.getCellEditor().stopCellEditing();
                    }

                    while(counter2>0){
                        XMLParser.MsgRcptS.equals(tbl.getValueAt(currentRow, 0));
                        XMLParser.CreDtTmS.equals(tbl.getValueAt(currentRow, 1));
                        XMLParser.MsgIdS.equals(tbl.getValueAt(currentRow, 2));
                        XMLParser.NtfctnIdS.equals(tbl.getValueAt(currentRow, 3));
                        XMLParser.NtfctnCreDtTmS.equals(tbl.getValueAt(currentRow, 4));
                        XMLParser.AcctIdS.equals(tbl.getValueAt(currentRow, 5));
                        XMLParser.NbOfNtriesS.equals(tbl.getValueAt(currentRow, 6));
                        XMLParser.SumS.equals(tbl.getValueAt(currentRow, 7));
                        XMLParser.StsAL.add((String) tbl.getValueAt(currentRow, 8));
                        XMLParser.NtryRefAL.add((String) tbl.getValueAt(currentRow, 9));
                        XMLParser.RsvlIndAL.add((String) tbl.getValueAt(currentRow, 10));
                        XMLParser.CdtDbtIndAL.add((String) tbl.getValueAt(currentRow, 11));
                        XMLParser.AddtlNtryInfAL.add((String) tbl.getValueAt(currentRow, 12));
                        XMLParser.AmtCcyAL.add((String) tbl.getValueAt(currentRow, 13));
                        XMLParser.TxDtlsAmtAL.add((String) tbl.getValueAt(currentRow, 14));
                        XMLParser.TxDtlsCdtDbtIndAL.add((String) tbl.getValueAt(currentRow, 15));
                        XMLParser.BkTxCdAL.add((String) tbl.getValueAt(currentRow, 16));
                        XMLParser.TxDtlsMsgIdAL.add((String) tbl.getValueAt(currentRow, 17));
                        XMLParser.PmtInfIdAL.add((String) tbl.getValueAt(currentRow, 18));
                        XMLParser.InstrIdAL.add((String) tbl.getValueAt(currentRow, 19));
                        XMLParser.EndToEndIdAL.add((String) tbl.getValueAt(currentRow, 20));
                        XMLParser.TxIdAL.add((String) tbl.getValueAt(currentRow, 21));
                        XMLParser.InitgPtyIdAL.add((String) tbl.getValueAt(currentRow, 22));
                        XMLParser.DbtrAL.add((String) tbl.getValueAt(currentRow, 23));
                        XMLParser.DbtrAcctPrtryAL.add((String) tbl.getValueAt(currentRow, 24));
                        XMLParser.DbtrAcctIdAL.add((String) tbl.getValueAt(currentRow, 25));
                        XMLParser.CdtrIdAL.add((String) tbl.getValueAt(currentRow, 26));
                        XMLParser.CdtrAcctIdAL.add((String) tbl.getValueAt(currentRow, 27));
                        XMLParser.ClrSysIdCdAL.add((String) tbl.getValueAt(currentRow, 28));
                        XMLParser.MmbIdAL.add((String) tbl.getValueAt(currentRow, 29));
                        XMLParser.CdtrAgtClrSysIdCdAL.add((String) tbl.getValueAt(currentRow, 30));
                        XMLParser.CdtrAgtMmbIdAL.add((String) tbl.getValueAt(currentRow, 31));
                        XMLParser.FinInstnIdNmAL.add((String) tbl.getValueAt(currentRow, 32));
                        XMLParser.RfrdDocInfNbAL.add((String) tbl.getValueAt(currentRow, 33));
                        XMLParser.RfrdDocInfTpAL.add((String) tbl.getValueAt(currentRow, 34));
                        XMLParser.AdjstmntAmtAndRsnAmtCcyAL.add((String) tbl.getValueAt(currentRow, 35));
                        XMLParser.AdjstmntAmtAndRsnCdtDbtIndAL.add((String) tbl.getValueAt(currentRow, 36));
                        XMLParser.AdjstmntAmtAndRsnAddtlInfAL.add((String) tbl.getValueAt(currentRow, 37));
                        XMLParser.CdtrRefInfTpAL.add((String) tbl.getValueAt(currentRow, 38));
                        XMLParser.CdtrRefInfRefAL.add((String) tbl.getValueAt(currentRow, 39));
                        XMLParser.IntrBkSttlmDtAL.add((String) tbl.getValueAt(currentRow, 40));
                        XMLParser.TxDtTmAL.add((String) tbl.getValueAt(currentRow, 41));
                        XMLParser.RmtCaptureDtAL.add((String) tbl.getValueAt(currentRow, 42));
                        XMLParser.RmtRcvdDtAL.add((String) tbl.getValueAt(currentRow, 43));
                        XMLParser.RmtProcDtAL.add((String) tbl.getValueAt(currentRow, 44));
                        XMLParser.PayInstrmntAL.add((String) tbl.getValueAt(currentRow, 45));
                        XMLParser.PayTpCdAL.add((String) tbl.getValueAt(currentRow, 46));
                        XMLParser.PrimaryCustIdAL.add((String) tbl.getValueAt(currentRow, 47));
                        XMLParser.EnrollmentIdAL.add((String) tbl.getValueAt(currentRow, 48));
                        XMLParser.CardAcctTpAL.add((String) tbl.getValueAt(currentRow, 49));
                        XMLParser.PassThruDataAL.add((String) tbl.getValueAt(currentRow, 50));
                        XMLParser.RmtRepresmtDtAL.add((String) tbl.getValueAt(currentRow, 51));
                        XMLParser.RmtFinalDtAL.add((String) tbl.getValueAt(currentRow, 52));
                        XMLParser.RmtSettledDtAL.add((String) tbl.getValueAt(currentRow, 53));
                        XMLParser.RmtPaidDtAL.add((String) tbl.getValueAt(currentRow, 54));
                        XMLParser.ClrgMopAL.add((String) tbl.getValueAt(currentRow, 55));
                        XMLParser.ClrgAcctAL.add((String) tbl.getValueAt(currentRow, 56));
                        XMLParser.JobIdAL.add((String) tbl.getValueAt(currentRow, 57));
                        XMLParser.NachaTransCdAL.add((String) tbl.getValueAt(currentRow, 58));
                        XMLParser.TransTpAL.add((String) tbl.getValueAt(currentRow, 59));





                        currentRow++;
                        counter2--;

                    }


                    WriteParser wParser = new WriteParser();
                    wParser.reWrite();


                }

            });


            panelNorth.add(tbl);
            panelNorth.add(new JScrollPane(tbl));
            panelNorth.setPreferredSize(new Dimension(500,500));
            panelSouth.add(buttonPanel,BorderLayout.NORTH);
            mainPanel.add(panelNorth,BorderLayout.NORTH);
            mainPanel.add(panelSouth,BorderLayout.SOUTH);
            frame.add(mainPanel);

            frame.setVisible(true);

XML解析器

(我不會發布整個代碼,因為它很長,但是我用解析后的數據填充數組列表,如下所示:)

XPathExpression PrimaryCustIdexpr = xpath.compile("//Ntfctn/Ntry/NtryDtls/TxDtls/SplmtryData/Envlp/Cnts/PrimaryCustId");
            Object PrimaryCustId = PrimaryCustIdexpr.evaluate(doc, XPathConstants.NODESET);
            NodeList nodesPrimaryCustId = (NodeList) PrimaryCustId;
            for(int i = 0; i < nodesPrimaryCustId.getLength(); i++){
                Element PrimaryCustIdel = (Element) nodesPrimaryCustId.item(i);
                PrimaryCustIdS = Utilities.xmlToString(PrimaryCustIdel);
                int length = PrimaryCustIdS.length();
                PrimaryCustIdS = PrimaryCustIdS.substring(53,length);
                length = PrimaryCustIdS.length();
                PrimaryCustIdS = PrimaryCustIdS.substring(0,length-16);
                PrimaryCustIdAL.add(PrimaryCustIdS);

            }

WriteParser(這只是我如何將數據保存回XML的示例)

XPathExpression AdjstmntAmtAndRsnCdtDbtIndexpr = xpath.compile("//Ntfctn/Ntry/NtryDtls/TxDtls/RmtInf/Strd/RfrdDocAmt/AdjstmntAmtAndRsn/CdtDbtInd");
            Object AdjstmntAmtAndRsnCdtDbtInd = AdjstmntAmtAndRsnCdtDbtIndexpr.evaluate(doc, XPathConstants.NODESET);
            NodeList nodesAdjstmntAmtAndRsnCdtDbtInd = (NodeList) AdjstmntAmtAndRsnCdtDbtInd;
            for(int i = 0; i < nodesAdjstmntAmtAndRsnCdtDbtInd.getLength(); i++){

                nodesAdjstmntAmtAndRsnCdtDbtInd.item(i).setTextContent(XMLParser.AdjstmntAmtAndRsnCdtDbtIndAL.get(i));

            }

默認表模型在其API上具有removeRow方法。

根據您要訪問rowIndex的方式(即SelectionListener與JTable.getSelectedRow),可以使用該方法來更新表。

編輯

對於偽代碼:

// Access the currently selected row.
int rowIndex = tbl.getSelectedRow();

// -1 denotes no row selected, check against that.
if (rowIndex >= 0){
    // Remove the row from the table.
    dtm.removeRow(rowIndex);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM