How do I make my JTable non editable import javaawt import j
How do I make my JTable non editable?
import java.awt.*;
import javax.swing.table.*;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableModel;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import java.nio.*;
import java.nio.charset.Charset;
import java.nio.file.*;
import java.awt.Desktop;
import java.io.File;
import java.io.IOException;
import java.util.Scanner;
import java.util.StringTokenizer;
public class SwingDemo implements ActionListener, KeyListener
{
JLabel search, output;
JFrame viewer;
JTable table = new JTable(new DefaultTableModel(null, new Object []{\"Row ID\", \"First Name\", \"Last Name\", \"EMPLID\", \"GPA\", \"Venus Login\"}));
JFrame viewerAdd;
DefaultTableModel model = (DefaultTableModel) table.getModel();
JTextField first = new JTextField(20);
JTextField last = new JTextField(20);
JTextField emplid = new JTextField(20);
JTextField gpa = new JTextField(20);
JTextField venus = new JTextField(10);
String Venus;
public static int rowCount = 1;
public final static int LOAD = 0;
public final static int SAVE = 1;
public SwingDemo()
{
//Creates Java Frame
viewer = new JFrame(\"Final Project\");
viewer.setSize(570, 650);
viewer.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
viewer.setLayout(new FlowLayout());
viewer.setLocationRelativeTo(viewer);
//Creates Drop Down Menu
String[] option = { \"Row ID\", \"First Name\", \"Last Name\", \"EMPLID\", \"GPA\", \"Venus Login\" };
JComboBox options = new JComboBox(option);
options.setSelectedIndex(0);
//Creates Button and Labels
search = new JLabel(\"Search by: \");
JButton addButton = new JButton(\"Add\");
JButton deleteButton = new JButton(\"Delete\");
JButton exportButton = new JButton(\"Export Data\");
//Creates JTable
JTextField textBox = new JTextField(20);
table = new JTable(model);
JScrollPane scrollPane = new JScrollPane(table);
table.setFillsViewportHeight(true);
//Creates Menu Bar
JMenuBar menuBar = new JMenuBar();
JMenu fileMenu = new JMenu(\"File\");
JMenu helpMenu = new JMenu(\"Help\");
menuBar.add(fileMenu);
menuBar.add(helpMenu);
JMenuItem openAction = new JMenuItem(\"Open\");
JMenuItem exitAction = new JMenuItem(\"Exit\");
JMenuItem exportAction = new JMenuItem(\"Export\");
JMenuItem aboutAction = new JMenuItem(\"About\");
fileMenu.add(openAction);
fileMenu.add(exportAction);
fileMenu.add(exitAction);
helpMenu.add(aboutAction);
//fileChooser.setDialogTitle(\"Choose a file\");
//ActionListener
openAction.addActionListener(this);
exitAction.addActionListener(this);
aboutAction.addActionListener(this);
addButton.addActionListener(this);
//Action Events
//Adds Elements to Java Frame
viewer.setJMenuBar(menuBar);
viewer.add(search);
viewer.add(options);
viewer.add(textBox);
viewer.add(addButton);
viewer.add(deleteButton);
viewer.add(scrollPane);
viewer.add(exportButton);
viewer.setVisible(true);
}
public void addUser()
{
JButton OK = new JButton(\"OK\");
JButton CANCEL = new JButton(\"CANCEL\");
//JTextField
//Strings
JLabel firstName = new JLabel(\"First Name\");
JLabel lastName = new JLabel(\"Last Name\");
JLabel EMPLID = new JLabel(\"EMPLID\");
JLabel GPA = new JLabel(\"GPA\");
JLabel venusLogin = new JLabel(\"Venus Login\");
//ActionListener
first.addActionListener(this);
last.addActionListener(this);
emplid.addActionListener(this);
gpa.addActionListener(this);
first.addKeyListener(this);
last.addKeyListener(this);
emplid.addKeyListener(this);
viewerAdd = new JFrame(\"Add User\");
viewerAdd.setSize(300, 200);
viewerAdd.setDefaultCloseOperation(viewerAdd.HIDE_ON_CLOSE);
viewerAdd.setLayout(new GridLayout(6,2));
viewerAdd.setLocationRelativeTo(viewerAdd);
viewerAdd.add(firstName);
viewerAdd.add(first);
viewerAdd.add(lastName);
viewerAdd.add(last);
viewerAdd.add(EMPLID);
viewerAdd.add(emplid);
viewerAdd.add(GPA);
viewerAdd.add(gpa);
viewerAdd.add(venusLogin);
viewerAdd.add(venus);
viewerAdd.add(OK);
viewerAdd.add(CANCEL);
OK.addActionListener(this);
CANCEL.addActionListener(this);
venus.setEditable(false);
viewerAdd.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) throws NumberFormatException
{
switch(e.getActionCommand())
{
case \"Exit\":
System.exit(0);
break;
case \"Open\":
FileDialog fileChooser = new FileDialog(viewerAdd,\"Select file\",FileDialog.LOAD);
fileChooser.setVisible(true);
JFileChooser a = new JFileChooser(fileChooser.getFile());
File[] file;
file = fileChooser.getFiles();
if(fileChooser.getFile() != null)
{
try
{
BufferedReader br = new BufferedReader(new FileReader(file[0]));
String line;
while ((line = br.readLine()) != null)
{
StringTokenizer st = new StringTokenizer(line, \",\" +\" \");
String f = st.nextToken();
String l = st.nextToken();
String em = st.nextToken();
String g = st.nextToken();
String v = st.nextToken();
model.addRow(new Object[]{rowCount++,f, l, em, g, v});
}
}
catch (FileNotFoundException ex)
{
System.out.println(\"o\");
}
catch (IOException e1)
{
JOptionPane.showMessageDialog(fileChooser, \"There was an IO Exception that was caught. Error: \"+ e1.getMessage(), null, JOptionPane.ERROR_MESSAGE);
e1.printStackTrace();
}
}
else
{
JOptionPane.showMessageDialog(null, \"File Not Selected\", null, JOptionPane.ERROR_MESSAGE);
}
break;
case \"About\":
JOptionPane.showMessageDialog(viewer, \"This is an App made by \");
break;
case \"Add\":
addUser();
break;
case \"OK\":
int userAction1 = JOptionPane.showConfirmDialog(null, \"Are You Sure You Want To Insert this Record?\");
int number;
double number1;
boolean emp, ga = false;
if(userAction1 == JOptionPane.YES_OPTION)
{
String firstName = first.getText();
String lastName = last.getText();
String Emplid = emplid.getText();
String Gpa = gpa.getText();
if (firstName.length() < 2)
JOptionPane.showMessageDialog(null, \"First Name must contain at least 2 characters\", null, JOptionPane.ERROR_MESSAGE);
else if (lastName.length() < 2)
JOptionPane.showMessageDialog(null, \"Last Name must contain at least 2 characters\", null, JOptionPane.ERROR_MESSAGE);
else if (Emplid.length()!=8)
JOptionPane.showMessageDialog(null, \"EMPLID must contain 8 numbers\", null, JOptionPane.ERROR_MESSAGE);
try
{
number = Integer.parseInt(Emplid);
try
{
number1 = Double.parseDouble(Gpa);
if(number1 < 0 || number1 > 4)
JOptionPane.showMessageDialog(null, \"GPA must be between 0.0 - 4.0\", null, JOptionPane.ERROR_MESSAGE);
else
ga = true;
}
catch (Exception s)
{
JOptionPane.showMessageDialog(null, \"GPA must be between 0.0 - 4.0\", null, JOptionPane.ERROR_MESSAGE);
}
}
catch (Exception s)
{
JOptionPane.showMessageDialog(null, \"EMPLID must contain 8 numbers only\", null, JOptionPane.ERROR_MESSAGE);
}
if (ga == true)
{
model.addRow(new Object[]{rowCount++,firstName, lastName, Emplid, Gpa, Venus});
viewerAdd.setVisible(false);
first = new JTextField(20);
last = new JTextField(20);
emplid = new JTextField(20);
gpa = new JTextField(20);
venus = new JTextField(10);
}
}
break;
case \"CANCEL\":
viewerAdd.setVisible(false);
break;
}
}
@Override
public void keyTyped(KeyEvent e)
{
try
{
venus.setText(last.getText().substring(0,2)+first.getText().substring(0,2)+emplid.getText().substring(4,8));
}
catch(Exception s)
{
}
Venus = venus.getText();
}
@Override
public void keyPressed(KeyEvent e)
{
try
{
venus.setText(last.getText().substring(0,2)+first.getText().substring(0,2)+emplid.getText().substring(4,8));
}
catch(Exception s)
{
}
Venus = venus.getText();
}
@Override
public void keyReleased(KeyEvent e)
{
try
{
venus.setText(last.getText().substring(0,2)+first.getText().substring(0,2)+emplid.getText().substring(4,8));
}
catch(Exception s)
{
}
Venus = venus.getText();
}
}
Solution
step 1:Go to the Navigation Pane, expand JScrollPane option
step 2:In JSCROLLPne, right-click on JTable and Select Customize Code as shown below:
step 3:On the code customizer option, choose custom property in the second drop down
step 4: Insert the code written below ,before the last bracket);code is given below
step5:{public boolean isCellEditable(int row, int column){return false;}}





