1
import javax.swing.*;
import java.awt.event.*;
public class SimpleGUI3 implements ActionListener {
JButton button;
private int numClick;
public static void main(String[] args) {
SimpleGUI3 gui = new SimpleGUI3();
gui.go();
}
public void go() {
JFrame frame = new JFrame();
button = new JButton("Click me.");
button.addActionListener(this);
frame.getContentPane().add(button);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 300);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
button.setLocation(100, 100); //This code do not change the button location if numClick++ (next row) used.
numClick++; //If comment numClick++ the button changes location on click. Why location doesn't changes if this row uncomment?
button.setText("Has been clicked " + numClick + " times.");
}
}
的問題是:爲什麼 在代碼上點擊位置的改變,而不numClick ++爲什麼按鈕ocation沒有變化,如果numClick ++代碼的工作?setLocation中的actionPerformed改變按鈕的位置只要沒有整數遞增
'button.setLocation(100,100);'不要這樣做。它有效地對抗了佈局經理。移動按鈕的目的是什麼? –
目的只是理解它是如何工作的。使用註釋nubClick ++時,按鈕會在點擊時移動一次。 – jakarjakar
*「目的只是理解它是如何工作的。」*所以......你想了解一些不應該做的事情,工作嗎?完全毫無意義。 **如果**有按鈕點擊移動組件的實際原因,最好通過改變包含組件面板的'EmptyBorder'的參數來完成。但是請將您的注意力轉向實際有用並保持最佳做法的事物。 –