Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //YOU NEED TO MANUALLY ADD A "package ...;" HERE.
- import java.awt.Dimension;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import javax.swing.BoxLayout;
- import javax.swing.DefaultListModel;
- import javax.swing.JButton;
- import javax.swing.JFrame;
- import javax.swing.JList;
- import javax.swing.JPanel;
- import javax.swing.JScrollBar;
- import javax.swing.JScrollPane;
- import javax.swing.JSeparator;
- import javax.swing.ListSelectionModel;
- import javax.swing.SwingConstants;
- public class Foo extends JPanel implements ActionListener {
- private DefaultListModel<String> model;
- private JList<String> triggerList;
- private JScrollPane scrollPane;
- private JButton createButton;
- private JButton removeButton;
- public Foo() {
- super();
- this.setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));
- constructingList();
- constructingButtons();
- }
- private void constructingButtons() {
- JPanel panel = new JPanel();
- Dimension size = new Dimension(90, 20);
- this.createButton = new JButton("Create");
- this.createButton.setActionCommand(Integer.toString(0));
- this.createButton.addActionListener(this);
- this.createButton.setSize(size);
- this.createButton.setMaximumSize(size);
- this.createButton.setMinimumSize(size);
- this.createButton.setPreferredSize(size);
- panel.add(createButton);
- panel.add(new JSeparator(SwingConstants.HORIZONTAL));
- this.removeButton = new JButton("Remove");
- this.removeButton.setActionCommand(Integer.toString(1));
- this.removeButton.addActionListener(this);
- this.removeButton.setSize(size);
- this.removeButton.setMaximumSize(size);
- this.removeButton.setMinimumSize(size);
- this.removeButton.setPreferredSize(size);
- panel.add(removeButton);
- this.add(panel);
- }
- private void constructingList() {
- this.model = new DefaultListModel<String>();
- this.triggerList = new JList<String>();
- this.triggerList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
- this.triggerList.setLayoutOrientation(JList.VERTICAL);
- this.triggerList.setVisibleRowCount(0);
- // I don't know how to provide dynamic height here. It's always fixed.
- Dimension size = new Dimension(200, 300);
- this.triggerList.setSize(size);
- this.triggerList.setMinimumSize(size);
- this.triggerList.setModel(this.model);
- scrollPane = new JScrollPane(this.triggerList);
- size = new Dimension(200, 300);
- scrollPane.setPreferredSize(size);
- scrollPane.setSize(size);
- scrollPane.setVisible(true);
- this.add(scrollPane);
- }
- @Override
- public void actionPerformed(ActionEvent event) {
- switch (Integer.valueOf(event.getActionCommand())) {
- default:
- break;
- case 0: {// Create Button
- System.out.println("CREATE");
- short value = Short.valueOf((short) (this.model.getSize() & Short.MAX_VALUE));
- this.model.addElement("<Untitled> " + Short.toString(value));
- this.validate();
- JScrollBar vertical = scrollPane.getVerticalScrollBar();
- vertical.setValue(vertical.getMaximum() + 1);
- break;
- }
- case 1: {// Remove button
- System.out.println("REMOVE");
- int index = this.triggerList.getSelectedIndex();
- if (index != -1)
- this.model.remove(index);
- else if (!this.model.isEmpty())
- this.model.remove(this.model.getSize() - 1);
- break;
- }
- }
- this.triggerList.validate();
- }
- public static void main(String[] args) {
- JFrame frame = new JFrame("Script Hobby (Hobby)");
- frame.add(new Foo());
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- frame.pack();
- frame.setVisible(true);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement