Scrollable tables
This commit is contained in:
parent
7975e49b23
commit
4152d529f7
2 changed files with 32 additions and 19 deletions
|
@ -46,6 +46,8 @@ import java.awt.event.FocusEvent;
|
||||||
import javax.swing.JToggleButton;
|
import javax.swing.JToggleButton;
|
||||||
import javax.swing.LayoutStyle.ComponentPlacement;
|
import javax.swing.LayoutStyle.ComponentPlacement;
|
||||||
import javax.swing.JLabel;
|
import javax.swing.JLabel;
|
||||||
|
import javax.swing.ScrollPaneConstants;
|
||||||
|
import java.awt.Dimension;
|
||||||
|
|
||||||
public class EditorGUI extends JFrame {
|
public class EditorGUI extends JFrame {
|
||||||
//Components
|
//Components
|
||||||
|
@ -182,9 +184,9 @@ public class EditorGUI extends JFrame {
|
||||||
panelStandardMetadata = new JPanel();
|
panelStandardMetadata = new JPanel();
|
||||||
tabbedPane.addTab("Метаданные либры", null, panelStandardMetadata, null);
|
tabbedPane.addTab("Метаданные либры", null, panelStandardMetadata, null);
|
||||||
tabbedPane.setEnabledAt(0, true);
|
tabbedPane.setEnabledAt(0, true);
|
||||||
/*
|
|
||||||
* if (true) { addMetadataTab(new OutlineElement(null, "Тестовое название")); }
|
if (true) { addMetadataTab(new OutlineElement(null, "Тестовое название")); }
|
||||||
*/
|
|
||||||
for (OutlineElement element : outline) {
|
for (OutlineElement element : outline) {
|
||||||
addMetadataTab(element);
|
addMetadataTab(element);
|
||||||
}
|
}
|
||||||
|
@ -218,10 +220,8 @@ public class EditorGUI extends JFrame {
|
||||||
|
|
||||||
private void addMetadataTab(OutlineElement element) {
|
private void addMetadataTab(OutlineElement element) {
|
||||||
JPanel panelOutline = new JPanel();
|
JPanel panelOutline = new JPanel();
|
||||||
JTable tableOutline = new MetadataTable();
|
|
||||||
MetadataTableModel outlineTableModel = createOutlineTableModel(element);
|
MetadataTableModel outlineTableModel = createOutlineTableModel(element);
|
||||||
tableModels.add(outlineTableModel);
|
tableModels.add(outlineTableModel);
|
||||||
configureTableOutline(tableOutline, outlineTableModel);
|
|
||||||
|
|
||||||
JButton btnOutlineSave = new JButton("Сохранить");
|
JButton btnOutlineSave = new JButton("Сохранить");
|
||||||
btnOutlineSave.addActionListener(new ActionListener() {
|
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);
|
GroupLayout groupLayoutOutlineMetadata = new GroupLayout(panelOutline);
|
||||||
groupLayoutOutlineMetadata.setHorizontalGroup(
|
groupLayoutOutlineMetadata.setHorizontalGroup(
|
||||||
groupLayoutOutlineMetadata.createParallelGroup(Alignment.LEADING)
|
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()
|
.addGroup(Alignment.TRAILING, groupLayoutOutlineMetadata.createSequentialGroup()
|
||||||
.addContainerGap(748, Short.MAX_VALUE)
|
.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)
|
.addComponent(btnOutlineSave)
|
||||||
.addGap(134))
|
.addGap(32))
|
||||||
|
.addGroup(groupLayoutOutlineMetadata.createSequentialGroup()
|
||||||
|
.addGap(45)
|
||||||
|
.addComponent(scrollPane, GroupLayout.DEFAULT_SIZE, 864, Short.MAX_VALUE)))
|
||||||
|
.addGap(90))
|
||||||
);
|
);
|
||||||
groupLayoutOutlineMetadata.setVerticalGroup(
|
groupLayoutOutlineMetadata.setVerticalGroup(
|
||||||
groupLayoutOutlineMetadata.createParallelGroup(Alignment.LEADING)
|
groupLayoutOutlineMetadata.createParallelGroup(Alignment.LEADING)
|
||||||
.addGroup(groupLayoutOutlineMetadata.createSequentialGroup()
|
.addGroup(Alignment.TRAILING, groupLayoutOutlineMetadata.createSequentialGroup()
|
||||||
.addGap(85)
|
.addContainerGap()
|
||||||
.addComponent(tableOutline, GroupLayout.DEFAULT_SIZE, 497, Short.MAX_VALUE)
|
.addComponent(scrollPane, GroupLayout.DEFAULT_SIZE, 600, Short.MAX_VALUE)
|
||||||
.addGap(52)
|
.addGap(31)
|
||||||
.addComponent(btnOutlineSave)
|
.addGroup(groupLayoutOutlineMetadata.createParallelGroup(Alignment.BASELINE)
|
||||||
.addGap(43))
|
.addComponent(btnOutlineSave_1)
|
||||||
|
.addComponent(btnOutlineSave))
|
||||||
|
.addGap(34))
|
||||||
);
|
);
|
||||||
|
JTable tableOutline = new MetadataTable();
|
||||||
|
scrollPane.setViewportView(tableOutline);
|
||||||
|
configureTableOutline(tableOutline, outlineTableModel);
|
||||||
|
|
||||||
JPopupMenu popupMenu = new JPopupMenu();
|
JPopupMenu popupMenu = new JPopupMenu();
|
||||||
addPopup(tableOutline, popupMenu);
|
addPopup(tableOutline, popupMenu);
|
||||||
|
|
|
@ -17,7 +17,6 @@ public class MetadataTableRenderer extends JTextArea implements TableCellRendere
|
||||||
|
|
||||||
public Component getTableCellRendererComponent(JTable table,Object value,
|
public Component getTableCellRendererComponent(JTable table,Object value,
|
||||||
boolean isSelected, boolean hasFocus, int row,int column) {
|
boolean isSelected, boolean hasFocus, int row,int column) {
|
||||||
|
|
||||||
this.setText(value == null ? "" : value.toString());
|
this.setText(value == null ? "" : value.toString());
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue