使用Java Swing。我创建了一个文本字段和一个按钮。如果我单击按钮,文本字段应向左移动100.如何执行此操作?
答案 0 :(得分:4)
从一次移动5px的微调器转换为一次移动100px的按钮,留给读者练习。 ;)
import java.awt.GridLayout;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.EmptyBorder;
class ALittleToTheLeft {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JPanel gui = new JPanel(new GridLayout(0,1));
JTextField input = new JTextField(10);
// not strictly necessary for some components,
// but good for ones that already have a border.
final JPanel inputContainer = new JPanel(new GridLayout());
inputContainer.add(input);
inputContainer.setBorder(new EmptyBorder(0,200,0,0));
gui.add(inputContainer);
SpinnerNumberModel inputAlignmentModel =
new SpinnerNumberModel(200,0,200,5);
final JSpinner inputAlignment =
new JSpinner(inputAlignmentModel);
inputAlignment.addChangeListener( new ChangeListener() {
public void stateChanged(ChangeEvent ce) {
int leftPad = ((Integer)inputAlignment.
getValue()).intValue();
int rightPad = 200-leftPad;
inputContainer.setBorder(
new EmptyBorder(0,leftPad,0,rightPad));
}
});
gui.add(inputAlignment);
JOptionPane.showMessageDialog(null, gui);
}
});
}
}
答案 1 :(得分:2)
以下是jtextfiled的不同构造函数
还您可以使用等方法更改jtextfield的不同属性
修改强>
移动文本字段需要两个类属性x,y ,并且每次单击都会更改要移动的x和y的值,然后在单击按钮时设置文本字段的边界。遵循
textField.setBounds(x, y,width,height);
答案 2 :(得分:0)
在构造函数中你可以像这样设置
int x=100,y=100,width=100,height=20;
jtextfield.setBounds(x,y,width,height)
add(jtextField);
然后为按钮添加actionperformed事件......
在动作事件中
jTextField.setBounds(x,y+200,width,height);
add(jtextField);
setVisbile(true);