カスタムコンポーネントがあります(これextends JPanel
)。
これは次のようになります。
私の質問は次のとおりです。別の場所で使用する場合JFrame
、どのように追加すればよいですか。ActionListener
ボタンのいずれかをクリックすると、actionPerformed
?のコードが実行されます。
を追加してみましたMouseListener
が、うまくいきませんでした。
編集:申し訳ありませんが、コンポーネントについてはよくわかりません。2つJButtons
(「-」と「+」)と。で構成されていJTextField
ます。ユーザーがそれらのいずれかをクリックすると、中央の数字が増減します。これら3つのコンポーネントはすべて、内に配置されますJPanel
。
編集2:ソースコードは次のとおりです。
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.border.EtchedBorder;
@SuppressWarnings("serial")
public class ZoomSelector extends JPanel {
protected JButton btnDecrement;
protected JTextField txtNumber;
protected JButton btnIncrement;
private String currentValue, previousValue;
public ZoomSelector() {
setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null));
initGUI();
txtNumber.setText("12");
currentValue = "12";
setSize(new Dimension(125, 26));
validate();
}
public boolean hasChanged() {
if(currentValue.equals(previousValue)) {
return true;
}
else {
return false;
}
}
public String getText() {
return txtNumber.getText();
}
public void reset() {
previousValue = txtNumber.getText();
txtNumber.setText("12");
currentValue = "12";
}
@Override
public void setEnabled(boolean e) {
btnDecrement.setEnabled(e);
txtNumber.setEnabled(e);
btnIncrement.setEnabled(e);
}
public void increment() {
previousValue = txtNumber.getText();
int number = Integer.parseInt(txtNumber.getText());
if(number < 20) {
number++;
txtNumber.setText("" + number);
currentValue = "" + number;
}
}
public void decrement() {
previousValue = txtNumber.getText();
int number = Integer.parseInt(txtNumber.getText());
if(number > 0) {
number--;
txtNumber.setText("" + number);
currentValue = "" + number;
}
}
private void initGUI() {
btnDecrement = new JButton("-");
btnDecrement.setFont(new Font("Tahoma", Font.BOLD, 14));
btnDecrement.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
decrement();
}
});
setLayout(new BorderLayout(0, 0));
add(btnDecrement, BorderLayout.WEST);
txtNumber = new JTextField();
txtNumber.setHorizontalAlignment(SwingConstants.CENTER);
txtNumber.setText("0");
txtNumber.setEditable(false);
add(txtNumber, BorderLayout.CENTER);
txtNumber.setColumns(2);
btnIncrement = new JButton("+");
btnIncrement.setFont(new Font("Tahoma", Font.BOLD, 14));
btnIncrement.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
increment();
}
});
add(btnIncrement, BorderLayout.EAST);
}
}