Swing/AWT/SWT :: Getting A Row Of Names From The First Column Of JTable?
Feb 9, 2014
I have a JTable with the model " Names " , " Quantity " and " Unit " .
I'm coding a program where you get the ingredients names.
So i need to get the whole row of one column and String it all up together,because i need to store it in mySql and i have already set it all as String.
how i can do this ?
My code are as follows :
JTable Code:
DefaultTableModel model = (DefaultTableModel)table.getModel();
if(!txtQty.getText().trim().equals("")){
model.addRow(new Object[]{ingCB.getSelectedItem().toString(),txtQty.getText(),unitCB.getSelectedItem().toString()});
}else{
JOptionPane.showMessageDialog(null,"*Quantity field left blank");
}
Getting the values and for storing :
for(int i = 1; i<= i ; i++){
ingredients = table.getName();
}
This is for loop is wrong and it does not work because i have a constructor to take in Ingredients but because it is inside the loop, it cannot take it in.
I've been creating a jTable where I can add / edit /delete new entries. Now i have 2 Questions :
1) My column 0 is filled with the row-number. I created a variable and with each "add" it adds +1 to the variable. That works, but as soon as i delete 1 row there is a gap ( 1..2..4..5..).
My question: Is there another way then mine to handle this?
2) The table is/should be working as some kind of database. The user is able to add Information (height, width,...). Now I want to sum the entries of 1 column (length,...). But as they´re objects I didn´t find a way.
My question: How can I sum the entries of 1 column of a table?
I have a Jtable which shows contents on each row. but the row contents which are bigger than the width of the column gets shown as "BlahBlah.." (basically getting showed up as .. in the end)
User has to manually increase the width of the column to see those extra contents.For e.g if the row contents are ABCDEFGHI and the widht of the column for that row is sufficient enough to show only ABCDEF of that, then it will show up as something like "ABCD.."Now my requirement is to show the complete contents over to next column on the same row.
Note: I could simply add the code to show the widht of the column to adjust according to largest row content for that column . But unfortunately this is not what is required.
When i run my program i see a JTable with data in it. The first 3 columns are filled with data, the next one is empty. Other columns that come afther the empty one are also filled.
So my 4th column is empty. But it only apears empty, cause when i move the 4th column to the left. The same column that was at 4th place is now at 3th place and filled up with data.
So the 4th column apears empty but it contains data when i move it to the left or the right.
Why does it show an empty column at the 4th place?
Some printscreens to get it clear:
In attachment:
attachment1 = 4th Column is empty attachement2 = 4th column is moved to 3th place and is filled with data.
I am trying to sort a JTable on an all numeric (integer) column. From what I read, if the sorter knows the type is integer it should sort correctly. This is my code:
public class ActorTableModel extends DefaultTableModel { private static final long serialVersionUID = 1005352603826663105L; public ActorTableModel (Object data[][],Object columnNames[]) { super(data,columnNames); } public Class<?> getColumnClass (int column) { if (column==0) { return(Integer.class); } return(String.class); } }
The result is when I sort on that column (0), it sorts alphabetically not numerically.
I have a JTable with 5 columns, named: "ID", "Name", "UnitPrice", "Qty", and "Total". Only the columns UnitPrice and Qty are editable by the user. When, for example, for a row in the JTable, the user types 5000 in the UnitPrice column, and types 15 in the Qty column, I would want that when he types the first character in the Qty column (i.e. the character 1) in the Qty column, the Total column displays 5000*1, in other terms 5000.
And when the user types the second character in the Qty column, i.e the character 5, after having typed 1, the Total column should display 5000*15, in other terms 75000. So, to say it concisely, I would want that the Total column refreshes accordingly each time the user types a character in the Qty column. I have tried to use the MouseClicked event of the JTable, but noticed that that does not solve my problem. is there an event I should use to refresh my Total column? Or should I proceed in another fashion?
How would you set a column in a JTable to make it unable to gain focus i.e. select the next column on the same row or ignore the command completely when selecting a column that should not be able to be gained focus on?
I'm working on a spreadsheet-like table and I was able to set it so that it would highlight the first cell in the relevant row(titled 1,2,3.. etc) when a cell is clicked. (Just like in MS Excel - preview attached) Now I want to do the same to the column header(i.e. A,B,C,D....etc) . How can I do it?
private void formWindowOpened(java.awt.event.WindowEvent evt) { setLocationRelativeTo(null); int rowNum = sheet.getRowCount(); for(int i=0; i<rowNum; i++){ sheet.setValueAt(i+1, i, 0);
I need to print contents of database to excel file.Apache POI is the solution but I am not finding a way to print the DB column names/headers into the excel.
E.g.:
incase csv we have opencsv CSVWriter writer = new CSVWriter(new FileWriter(fileName)); System.out.println("writer"); writer.writeAll(rs, true);
will print the db contents with the column headers dynamically whatever the query may be.
Any solution where we can print data and column names without know the query previously as we are getting query at the run time and each time the query is different.
In a spreadsheet, alphabetical letters are column names and numbers represent rows. I have named the columns and I need to name the rows in the same way. Or if I am to set the first column in every row as row headers, how can I make then non-editable by the user? In addition to that, how can I make the table appear bigger? There's a lot of space but the table appears to be small.
I am making a gui in which i read values from text file to JTable. But i want to define the column header as A,B,C,D,E,F,G,H,I. Now when i read, the values from text file are getting displayed in Jtable headers. How can i achieve the column header as A,B,C,D,E,F,G,H,I.
import java.awt.*; import java.awt.event.*; import java.io.*; import java.util.*; import javax.swing.*; import javax.swing.table.*; public class Bb extends JFrame {
I have a jtable. the fields are like Product_code,Product_name,Qty,Rate in my java program.. now i want to do is when i press a first letter in my jtable under Product_name like "P" it will display the reminding Product_name which will have the starting letter of "P" like pen, pencil, peper like this i want to populate in my jtable.
I have a database table containing two columns A and B. They both contain integers. I'd like to know if it's possible, when displaying them in a JTable, to be combined in one column X. I still need, however, to be able to distinguish them from each other when selecting a row from the JTable. E.g. to store each of the values in a a separate variable. Maybe I can combine them when reading from the ResultSet and use some sort of delimiter ? But how?
I created filters for every column in my Jtable however, some of these columns have more than one word inside of them and my filters will only filter them based on the first word. For example if I had a first and last name in one column, it will filter the table if I enter the first name in my filter text field but it will not filter that same column if I only input the last name. What is a good regex expression to filter any word in any order?
Hiding the column but not removing , because i need to bring this column id to the next screen, only i do not want to show the column but internally it has to take the value to navigate the screen, but if i use below code, i am getting null pointer exception,
From what I can determine check boxes are applied in SWT to the first column only of a table.
final Table table_project = new Table(g3_tabfolder_projects, SWT.BORDER | SWT.CHECK);
However I require check boxes on all cells. I tried creating a table for each column (which gives me my check boxes) but as the number of enries are often numerous and thus require vertical scroll the tables become out of sync (and to the user that sync is important).
Before I knock up some code to try and synchronise the tables I just wanted to check any alternative approaches. The project is SWT based.
The problem is that I populate the table with autoincrement primary key. I don't want it to be visible. I have been googling for hours to find no solution. It seems that sql/mysql provides no solution by selecting all table columns except one. So I wonder, how I could overcome this problem. Here is some of my code:
public void tableChanged(TableModelEvent e) { int row = e.getFirstRow(); int col = e.getColumn(); model = (MyTableModel) e.getSource(); String stulpPav = model.getColumnName(col); Object data = model.getValueAt(row, col);
[Code] .....
The ID is used in
stmt.addBatch("update finance.fin set " + stulpPav + " = " + duom + " where ID = " + studId + ";");
I tried to omit ID from my SELECT statement, I tried to put Date as a first element in data[iEil][0] but neither options were successful. Data hasn't been changed in database. NOW, everything works fine, except I don't want ID column to be visible in my table.
My JTable has a row, row number 0, which I always want to be at the top.I tried the following two approaches, both without success:
1- Use a custom table cell renderer for the header, and create a header of two rows. the second row is my JTextField.
Problem: I cannot get the JTextField to function properly. (I've seen examples with a checkbox in the header, but that one just reacts to a click somewhere on the header, my textfield must be editable).
2- Use the first row of the table. This works quite nice. However, I must prevent row 0 to be re-ordered when sorting the table.
I was thinking to add a prefix (either something like "___" or "zzz" depending on current sorting mode), but I do not know which methods to adjust for this exaclty.
Another approach would be to have N textfields above the JTable in some layout (or two JTable's on top of each other).
However, Then I would need to react to the re-ordering and re-sizing of all columns as well, which does not seem easy to me.
I have encountered a very tricky spot in a project that i am working on. I must have a JTable to programmatically select the very last row in an AbstractTableModel. I have tried every thing but nothing works so far.
The problem is is that the JTable only scrolls down to the second last table row in the model? What am i missing?
//Show the very last row in a tablemodel object using the method updateTableRows //after an "insert action event" occurred public void updateViewMode(String name, java.util.List<NetworkSwitch> list, boolean flag) { CableTableModel model = cableTable.getCableModel();
[code]....
What happens is that the only row that gets selected is the second last row of the total rows iny AbstractTableModel object, "CableTableModel"
I am preparing a small solution. Below is how the functionality works.
1. Login Screen 2. Successful Login will take to a MDI Form 3. Click the menu, a JInternalFrame will open in the JDestopPane. 4. JInternalFrame has a JTable. 5. JInternalFrame has a JButton available for adding new data. 6. When JButton is clicked, a new JInternalFrame is popped up with some JTextField and JButton to save the data. 7. After saving the data (after insert query), a JDialog is opened to upload Logo (update query for BLOB), There are two buttons in the JDialog, one is for uploading the image, another one is uploading it later. 8. The logo is displayed in the JDialog and if the JButton, for upload is pressed, update the database and reload the JTable in the JInternalFrame is called.
My challenge is in point 8. The function is called properly, but the table is not getting refreshed.
JButton in JDialog for uploading the Logo private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: JOptionPane.showMessageDialog(this, "Image Uploaded Successfully"); companyConfig cc = new companyConfig(); //cc.reloadTable(); cc.updateTable(); this.dispose();