java jtable删除行_java - 从JTable删除行 - 堆栈内存溢出

我需要从JTable中删除行。

这是我的代码:

import java.awt.BorderLayout;

import java.awt.Dimension;

import java.awt.FlowLayout;

import java.awt.event.ActionListener;

import java.awt.event.ActionEvent;

import java.awt.event.ItemEvent;

import java.awt.event.ItemListener;

import java.awt.event.MouseEvent;

import java.awt.event.MouseMotionListener;

import java.awt.GridLayout;

import javax.swing.JPanel;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JScrollPane;

import javax.swing.JTable;

import javax.swing.JTextArea;

import javax.swing.JTextField;

import java.util.ArrayList;

import javax.swing.table.DefaultTableModel;

public class GuiManyComponents implements ItemListener, ActionListener {

public static void main(String[] args) {

new GuiManyComponents();

}

JTextField txtField1;

JTextArea tarMultipleLines;

JButton btnDelete;

JButton btnAdd;

JButton btnEdit;

JButton ok;

JButton cancel;

JTable table = new JTable();

JTextField title;

JTextField description;

JTextField genre;

JTextField director;

JTextField rating;

ArrayList movies = new ArrayList();

public GuiManyComponents()

{

final JFrame frame = new JFrame();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setLayout(new BorderLayout());

frame.setSize(500,700);

frame.setTitle("Text area test");

final JFrame frame1 = new JFrame();

frame1.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE );

frame1.setLayout(new BorderLayout());

frame1.setTitle("Text area test");

final JFrame frame2 = new JFrame();

frame2.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE );

frame2.setLayout(new BorderLayout());

frame2.setTitle("Text area test");

table.getSelectedRow();

//test data

movies.add(new Movie("1ABC", "D", "1", "qq", ""));

movies.add(new Movie("2ABC", "F", "2", "", ""));

movies.add(new Movie("3ABC", "G", "3", "", ""));

updateJTable();

JPanel south = new JPanel(new GridLayout(1, 3));

south.add(btnDelete = new JButton("Delete", new ImageIcon("images\\nocheck.png")));

btnDelete.addActionListener(this);

south.add(btnEdit = new JButton("Change info", new ImageIcon("images\\paste.png")));

btnEdit.addActionListener(

new ActionListener(){

public void actionPerformed(ActionEvent arg0)

{

frame.setVisible(false);

frame2.setVisible(true);

}

});

south.add(btnAdd = new JButton("Add New", new ImageIcon("images\\add.png")));

btnAdd.addActionListener(

new ActionListener(){

public void actionPerformed(ActionEvent arg0)

{

frame.setVisible(false);

frame1.setVisible(true);

}

});

JScrollPane scrollPane = new JScrollPane(table); //add scrollpane to table

frame.add(scrollPane, BorderLayout.CENTER);

frame.add(south, BorderLayout.SOUTH);

JPanel down = new JPanel(new GridLayout(1, 2));

down.add(cancel = new JButton("Cancel", new ImageIcon("images\\nocheck.png")));

cancel.addActionListener(

new ActionListener(){

public void actionPerformed(ActionEvent arg0)

{

frame.setVisible(true);

frame1.setVisible(false);

}

});

down.add(ok = new JButton("Save", new ImageIcon("images\\checkmark.png")));

ok.setPreferredSize(new Dimension(100, 70));

ok.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent arg3)

{

String input = title.getText();

String input2 = genre.getText();

String input3 = description.getText();

String input4 = director.getText();

String input5 = rating.getText();

movies.add(new Movie(input, input2, input3, input4, input5 ));

frame.setVisible(true);

frame1.setVisible(false);

updateJTable();

}});

title = new JTextField(5);

description = new JTextField(5);

director = new JTextField(5);

rating = new JTextField(5);

genre = new JTextField(5);

title.addActionListener(this); // add actionListener

description.addActionListener(this);

rating.addActionListener(this);

genre.addActionListener(this);

director.addActionListener(this);

JPanel north = new JPanel(new GridLayout(5, 2));

north.add(new JLabel("Title: "));

north.add(title);

north.add(new JLabel("Director: "));

north.add(director);

north.add(new JLabel("Description: "));

north.add(description);

north.add(new JLabel("Genre: "));

north.add(genre);

north.add(new JLabel("Rating: "));

north.add(rating);

frame1.add(down, BorderLayout.SOUTH);

frame1.add(north, BorderLayout.NORTH);

frame1.pack();

JPanel apacia = new JPanel(new GridLayout(1, 2));

apacia.add(cancel = new JButton("Cancel", new ImageIcon("images\\nocheck.png")));

cancel.addActionListener(

new ActionListener(){

public void actionPerformed(ActionEvent arg0)

{

frame.setVisible(true);

frame2.setVisible(false);

}

});

apacia.add(ok = new JButton("Done", new ImageIcon("images\\checkmark.png")));

JPanel virsus = new JPanel(new GridLayout(5, 2));

virsus.add(new JLabel("Title: "));

virsus.add(title);

virsus.add(new JLabel("Director: "));

virsus.add(director);

virsus.add(new JLabel("Description: "));

virsus.add(description);

virsus.add(new JLabel("Genre: "));

virsus.add(rating);

virsus.add(new JLabel("Rating: "));

virsus.add(genre);

frame2.add(virsus, BorderLayout.NORTH);

frame2.add(apacia, BorderLayout.SOUTH);

frame2.pack();

frame.setVisible(true);

frame1.setVisible(false);

frame2.setVisible(false);

}

public void updateJTable()

{

DefaultTableModel model = new DefaultTableModel();

model.setColumnIdentifiers(new String[] { "title", "genre", "description", "director", "rating" });

model.setRowCount(movies.size());

int row = 0;

for (Movie movie : movies) {

model.setValueAt(movie.getTitle(), row, 0);

model.setValueAt(movie.getGenre(), row, 1);

model.setValueAt(movie.getDescription(), row, 2);

model.setValueAt(movie.getDirector(), row, 3);

model.setValueAt(movie.getRating(), row, 4);

row++;

}

table.setModel(model);

}

public void actionPerformed(ActionEvent arg0)

{

}

public void itemStateChanged( ItemEvent event )

{

}

}

我现在刚刚开始做GUI,这有点困难。

如果可以的话,我会很高兴。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值