[feat] jtable display fix and listener
This commit is contained in:
parent
49bc9a038c
commit
c308356549
2 changed files with 105 additions and 32 deletions
|
@ -83,7 +83,7 @@
|
|||
</hspacer>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="184ef" binding="NetworkPanel" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<grid id="184ef" binding="NetworkPanel" layout-manager="GridLayoutManager" row-count="3" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="0" left="0" bottom="0" right="0"/>
|
||||
<constraints>
|
||||
<card name="Card2"/>
|
||||
|
@ -104,14 +104,45 @@
|
|||
<text value="Network"/>
|
||||
</properties>
|
||||
</component>
|
||||
<scrollpane id="44153" binding="mypane" custom-create="true">
|
||||
<grid id="7f3c9" binding="stationsPanel" layout-manager="GridLayoutManager" row-count="3" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="0" left="0" bottom="0" right="0"/>
|
||||
<constraints>
|
||||
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="7" hsize-policy="7" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="2046e" class="javax.swing.JTable" binding="table" custom-create="true">
|
||||
<component id="35d9e" class="javax.swing.JLabel" binding="departText">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<text value="Departure:"/>
|
||||
</properties>
|
||||
</component>
|
||||
<vspacer id="f3812">
|
||||
<constraints>
|
||||
<grid row="2" column="0" row-span="1" col-span="1" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
</vspacer>
|
||||
<component id="33aa0" class="javax.swing.JLabel" binding="arrText">
|
||||
<constraints>
|
||||
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<text value="Arrival:"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
<scrollpane id="44153" binding="mypane">
|
||||
<constraints>
|
||||
<grid row="2" column="0" row-span="1" col-span="1" vsize-policy="7" hsize-policy="7" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="2046e" class="javax.swing.JTable" binding="table">
|
||||
<constraints/>
|
||||
<properties/>
|
||||
</component>
|
||||
|
|
|
@ -6,11 +6,9 @@ import javax.swing.*;
|
|||
import javax.swing.table.DefaultTableModel;
|
||||
import javax.swing.table.TableModel;
|
||||
import java.awt.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.awt.event.KeyAdapter;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.awt.event.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class View extends JFrame {
|
||||
private JPanel Cardpanel;
|
||||
|
@ -23,19 +21,22 @@ public class View extends JFrame {
|
|||
private JButton searchButton;
|
||||
private JPanel HomePanel;
|
||||
private JPanel MainPanel;
|
||||
private DefaultTableModel dtm;
|
||||
private DefaultTableModel model;
|
||||
|
||||
private JTable table;
|
||||
|
||||
private JScrollPane mypane;
|
||||
private JPanel ItineraryPanel;
|
||||
private JMenuItem Itinerary;
|
||||
private JPanel stationsPanel;
|
||||
private JLabel departText;
|
||||
private JLabel arrText;
|
||||
|
||||
private ArrayList<Stop> StopList;
|
||||
|
||||
private Stop departureCur;
|
||||
private String departureCur;
|
||||
|
||||
private Stop arrivalCur;
|
||||
private String arrivalCur;
|
||||
|
||||
private String searchCur;
|
||||
|
||||
|
@ -45,9 +46,11 @@ public class View extends JFrame {
|
|||
|
||||
|
||||
public View(ArrayList<Stop> s) throws HeadlessException {
|
||||
this.createUIComponents();
|
||||
model = (DefaultTableModel) table.getModel();
|
||||
model.setColumnCount(2);
|
||||
model.setColumnIdentifiers(new Object[]{"Line", "Stop"});
|
||||
this.StopList = s;
|
||||
this.StopCur = StopList.get(0);
|
||||
|
||||
|
||||
setContentPane(MainPanel);
|
||||
setTitle("app");
|
||||
|
@ -121,8 +124,51 @@ public class View extends JFrame {
|
|||
Cardpanel.revalidate();
|
||||
}
|
||||
});
|
||||
table.addMouseListener(new MouseAdapter() {
|
||||
@Override
|
||||
public void mouseClicked(MouseEvent e) {
|
||||
super.mouseClicked(e);
|
||||
System.out.println("MouseClick: " + e.getX() + ";" + e.getY());
|
||||
showOptionsDialog(table, e.getX(), e.getY());
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
mypane.addMouseListener(new MouseAdapter() {
|
||||
@Override
|
||||
public void mouseClicked(MouseEvent e) {
|
||||
super.mouseClicked(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void showOptionsDialog(JTable table, int x, int y) {
|
||||
int selectedRow = table.rowAtPoint(new Point(x, y));
|
||||
if (selectedRow != -1) { // If a row is selected
|
||||
|
||||
String stationSel = (String) table.getValueAt(selectedRow, 1);
|
||||
|
||||
// Options to set Departure, Arrival, or Cancel
|
||||
Object[] options = {"Departure", "Arrival", "Cancel"};
|
||||
int choice = JOptionPane.showOptionDialog(null, "What action would you like to perform for " + stationSel + "?", "Action Selection",
|
||||
JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[2]);
|
||||
|
||||
// Handling the choice
|
||||
if (choice == 0) {
|
||||
this.departureCur = stationSel;
|
||||
this.departText.setText("Departure: " + stationSel);
|
||||
} else if (choice == 1) {
|
||||
this.arrivalCur = stationSel;
|
||||
this.arrText.setText("Arrival: " + stationSel);
|
||||
} else {
|
||||
System.out.println("rien");
|
||||
}
|
||||
System.out.println("Départ: " + this.departureCur + "; Arrivée: " + this.arrivalCur);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
ArrayList<Stop> s = new ArrayList<>();
|
||||
|
@ -134,38 +180,34 @@ public class View extends JFrame {
|
|||
}
|
||||
|
||||
|
||||
private void createUIComponents() {
|
||||
// TODO: place custom component creation code here
|
||||
|
||||
|
||||
dtm = new DefaultTableModel(1, 2);
|
||||
|
||||
String[] header = new String[]{"Line", "Stop"};
|
||||
dtm.setColumnIdentifiers(header);
|
||||
dtm.setValueAt("test", 0, 0);
|
||||
dtm.setValueAt("test", 0, 1);
|
||||
table = new JTable(dtm);
|
||||
table.setPreferredScrollableViewportSize(table.getPreferredSize());
|
||||
|
||||
mypane = new JScrollPane(table);
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void showSearch(ArrayList<Stop> stops) {
|
||||
// Clear existing rows from the table
|
||||
dtm.setRowCount(0);
|
||||
|
||||
model.setRowCount(0);
|
||||
model.setColumnCount(2);
|
||||
|
||||
|
||||
// Add new rows based on the search results
|
||||
count = 0;
|
||||
for (Stop stop : stops) {
|
||||
// Add a row to the table with Stop's line in the first column and Stop's name in the second column
|
||||
|
||||
dtm.addRow(new Object[]{stop.getLines().iterator().next(), stop.getName()});
|
||||
model.addRow(new Object[]{String.join(",", stop.getLines()), stop.getName()});
|
||||
++count;
|
||||
}
|
||||
|
||||
table.setModel(dtm);
|
||||
System.out.println(stops.toString());
|
||||
for (int i = 0; i < model.getRowCount(); i++) {
|
||||
for (int j = 0; j < model.getColumnCount(); j++) {
|
||||
System.out.print("valeur at coord " + i +";" + j +": " + model.getValueAt(i, j) + "\t");
|
||||
}
|
||||
System.out.println();
|
||||
}
|
||||
|
||||
System.out.println(count);
|
||||
|
||||
table.revalidate();
|
||||
table.repaint();
|
||||
|
||||
|
|
Reference in a new issue