我是事件監聽器的新手。我發現這個練習。我的目標是用用戶輸入更改BorderLayout
。我嘗試使用DocumentListener
和ActionListener
,但我無法使它工作。以下是我可以代碼:帶用戶輸入/事件監聽器的動態BorderLayout
public class Eventlistenertest extends JFrame {
public Eventlistenertest(){
JPanel p1 = new JPanel(new BorderLayout(i, j)); // here is i and j.
p1.add(new JButton("East"), BorderLayout.EAST);
p1.add(new JButton("South"), BorderLayout.SOUTH);
p1.add(new JButton("West"), BorderLayout.WEST);
p1.add(new JButton("North"), BorderLayout.NORTH);
p1.add(new JButton("Center"), BorderLayout.CENTER);
p1.setBorder(new TitledBorder("Container of BorderLayout"));
JTextField VGap = new JTextField(35);
JTextField HGap = new JTextField(35);
JPanel p2 = new JPanel(new FlowLayout(FlowLayout.LEFT, 10, 20));
p2.add(new JLabel("HGap"));
p2.add(HGap);
p2.add(new JLabel("VGap"));
p2.add(VGap);
p2.setBorder(new TitledBorder("BorderLayout Properties"));
setLayout(new GridLayout(2, 1, 5, 5));
add(p1);
add(p2);
int i =Integer.parseInt(HGap.getText());
int j =Integer.parseInt(VGap.getText());
}
/** Main method */
public static void main(String[] args) {
Eventlistenertest frame = new Eventlistenertest();
frame.setTitle("ShowBorderLayout");
frame.setSize(500, 500);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
我需要在開始i
和j
零,JTextField
輸入後進行更改。我怎樣才能做到這一點?
「我發現這個練習」哪些運動? 「我無法做到這一點」你想要做什麼? –
您需要在輸入後重新排列整個Frame並重新佈局......享受揮杆的味道 – Vogel612
我正在嘗試更改BorderLayout(i,j),而我和j將會是用戶輸入。 –