Scrollable tables

This commit is contained in:
Georgy Litvinov 2020-04-20 13:54:22 +02:00
parent 7975e49b23
commit 4152d529f7
2 changed files with 32 additions and 19 deletions

View file

@ -46,6 +46,8 @@ import java.awt.event.FocusEvent;
import javax.swing.JToggleButton;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.JLabel;
import javax.swing.ScrollPaneConstants;
import java.awt.Dimension;
public class EditorGUI extends JFrame {
//Components
@ -182,9 +184,9 @@ public class EditorGUI extends JFrame {
panelStandardMetadata = new JPanel();
tabbedPane.addTab("Метаданные либры", null, panelStandardMetadata, null);
tabbedPane.setEnabledAt(0, true);
/*
* if (true) { addMetadataTab(new OutlineElement(null, "Тестовое название")); }
*/
if (true) { addMetadataTab(new OutlineElement(null, "Тестовое название")); }
for (OutlineElement element : outline) {
addMetadataTab(element);
}
@ -218,10 +220,8 @@ public class EditorGUI extends JFrame {
private void addMetadataTab(OutlineElement element) {
JPanel panelOutline = new JPanel();
JTable tableOutline = new MetadataTable();
MetadataTableModel outlineTableModel = createOutlineTableModel(element);
tableModels.add(outlineTableModel);
configureTableOutline(tableOutline, outlineTableModel);
JButton btnOutlineSave = new JButton("Сохранить");
btnOutlineSave.addActionListener(new ActionListener() {
@ -230,27 +230,41 @@ public class EditorGUI extends JFrame {
}
});
JScrollPane scrollPane = new JScrollPane();
scrollPane.setSize(new Dimension(50, 50));
JButton btnOutlineSave_1 = new JButton("Закрыть");
GroupLayout groupLayoutOutlineMetadata = new GroupLayout(panelOutline);
groupLayoutOutlineMetadata.setHorizontalGroup(
groupLayoutOutlineMetadata.createParallelGroup(Alignment.LEADING)
.addGroup(groupLayoutOutlineMetadata.createSequentialGroup()
.addGap(34)
.addComponent(tableOutline, GroupLayout.DEFAULT_SIZE, 839, Short.MAX_VALUE)
.addGap(126))
.addGroup(Alignment.TRAILING, groupLayoutOutlineMetadata.createSequentialGroup()
.addContainerGap(748, Short.MAX_VALUE)
.addComponent(btnOutlineSave)
.addGap(134))
.addGroup(groupLayoutOutlineMetadata.createParallelGroup(Alignment.TRAILING)
.addGroup(groupLayoutOutlineMetadata.createSequentialGroup()
.addContainerGap(557, Short.MAX_VALUE)
.addComponent(btnOutlineSave_1, GroupLayout.PREFERRED_SIZE, 108, GroupLayout.PREFERRED_SIZE)
.addGap(104)
.addComponent(btnOutlineSave)
.addGap(32))
.addGroup(groupLayoutOutlineMetadata.createSequentialGroup()
.addGap(45)
.addComponent(scrollPane, GroupLayout.DEFAULT_SIZE, 864, Short.MAX_VALUE)))
.addGap(90))
);
groupLayoutOutlineMetadata.setVerticalGroup(
groupLayoutOutlineMetadata.createParallelGroup(Alignment.LEADING)
.addGroup(groupLayoutOutlineMetadata.createSequentialGroup()
.addGap(85)
.addComponent(tableOutline, GroupLayout.DEFAULT_SIZE, 497, Short.MAX_VALUE)
.addGap(52)
.addComponent(btnOutlineSave)
.addGap(43))
.addGroup(Alignment.TRAILING, groupLayoutOutlineMetadata.createSequentialGroup()
.addContainerGap()
.addComponent(scrollPane, GroupLayout.DEFAULT_SIZE, 600, Short.MAX_VALUE)
.addGap(31)
.addGroup(groupLayoutOutlineMetadata.createParallelGroup(Alignment.BASELINE)
.addComponent(btnOutlineSave_1)
.addComponent(btnOutlineSave))
.addGap(34))
);
JTable tableOutline = new MetadataTable();
scrollPane.setViewportView(tableOutline);
configureTableOutline(tableOutline, outlineTableModel);
JPopupMenu popupMenu = new JPopupMenu();
addPopup(tableOutline, popupMenu);

View file

@ -17,7 +17,6 @@ public class MetadataTableRenderer extends JTextArea implements TableCellRendere
public Component getTableCellRendererComponent(JTable table,Object value,
boolean isSelected, boolean hasFocus, int row,int column) {
this.setText(value == null ? "" : value.toString());
return this;
}