2015-10-23 5 views
2

Мне было интересно, может ли кто-нибудь дать мне какие-либо указания, с чего начать с моего задания. Я должен создать программу, которая позволяет пользователю вводить значение, которое устанавливает HGap или VGap между кнопками в BorderLayout. Я попытался отобразить его на бумаге, но я не знаю, следует ли мне использовать панель или метку, или как реализовать метод установки пробелов с текстовой областью или даже расширить рамку за кнопками (У меня есть код для кнопок, но они заполняют все пространство). Это то, что он должен выглядеть следующим образом:BorderLayout, запрашивая пользовательский ввод для HGap и VGap

enter image description here

Аналогично для VGap. Любая помощь очень ценится, но имейте в виду, что я всего лишь новичок. Мне нужны только предложения, и я попытаюсь обновить вас своей кодировкой, но пока у меня ничего нет.

+0

Вы уверены, что даже с использованием назначенного инструментария для проекта и соответствующим образом помечены на ваш вопрос. Изображение в вашем вопросе - скриншот пользовательского интерфейса Swing, а не интерфейса JavaFX. Если вы пишете приложение Swing, а не приложение JavaFX, обновите теги в своем вопросе, чтобы ссылаться на соответствующую технологию (или вы получите ответы, которые неприменимы и не смущают вас). – jewelsea

+0

вы правы, это Swing, я запутался в этой части, спасибо, что указали! – imaginedrragon

+0

[* Java Swing: динамическое изменение графического интерфейса пользователя *] (http://stackoverflow.com/q/5750068/230513) может дать вам некоторые идеи. – trashgod

ответ

2

Следующий код может дать вам идею ...

import javax.swing.*; 
import java.awt.event.*; 
import java.awt.*; 

public class BorderDemo extends JFrame { 
    private JPanel buttonPanel = new JPanel(); 
    private JPanel propertiesPanel = new JPanel(); 
    private JButton north = new JButton("North"); 
    private JButton south = new JButton("South"); 
    private JButton west = new JButton("West"); 
    private JButton east = new JButton("East"); 
    private JButton center = new JButton("Center"); 
    private BorderLayout border = new BorderLayout(); 
    private JLabel label = new JLabel("BorderLayout Properties:"); 
    private JLabel hGapLabel = new JLabel("HGap:"); 
    private JLabel vGapLabel = new JLabel("VGap:"); 
    private JTextField hGapField = new JTextField(); 
    private JTextField vGapField = new JTextField(); 
    private GridLayout grid = new GridLayout(2, 2); 
    private Integer hGapInt; 
    private Integer vGapInt; 

    public BorderDemo() { 
     buttonPanel.setLayout(border); 
     buttonPanel.add(north, BorderLayout.NORTH); 
     buttonPanel.add(center, BorderLayout.CENTER); 
     buttonPanel.add(south, BorderLayout.SOUTH); 
     buttonPanel.add(west, BorderLayout.WEST); 
     buttonPanel.add(east, BorderLayout.EAST); 
     propertiesPanel.setLayout(grid); 
     propertiesPanel.add(hGapLabel); 
     propertiesPanel.add(hGapField); 
     propertiesPanel.add(vGapLabel); 
     propertiesPanel.add(vGapField); 

     add(buttonPanel, BorderLayout.CENTER); 
     add(propertiesPanel, BorderLayout.SOUTH); 

     hGapField.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent e) { 
       hGapInt = Integer.parseInt(hGapField.getText()); 
       border.setHgap(hGapInt); 
       setSize((int) (getWidth() + hGapInt), getHeight()); 
       validate(); 
      } 
     }); 

     vGapField.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent e) { 
       vGapInt = Integer.parseInt(vGapField.getText()); 
       border.setVgap(vGapInt); 
       setSize(getWidth(), (int) (getHeight() + vGapInt)); 
       validate(); 
      } 
     }); 
    } 

    public static void main(String[] args) { 
     BorderDemo borderDemo = new BorderDemo(); 
     borderDemo.setVisible(true); 
     borderDemo.setSize(400, 400); 
     borderDemo.setLocationRelativeTo(null); 
     borderDemo.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    } 
} 
+0

спасибо, человек, это именно то, что я искал! я уже сдался, потому что у меня была идея, но я не знал, как с ней работать, и это действительно спасло меня! – imaginedrragon

 Смежные вопросы

  • Нет связанных вопросов^_^