我有一个面板,其中有两个面板。问题是ActionListener
仅使用第一个面板中的第一个按钮,但第二个面板中的按钮不起作用。我做错了什么?
package vista;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import logica.Empresa;
public class PanelPagos extends JPanel implements ActionListener {
private JPanel panelBusqueda;
private JPanel panelCuotas;
///////////////////////////////////
private JLabel labelId;
private JTextField txtId;
private JButton buttonBuscar;
//////////////////////////////////
private JLabel labelPago1;
private JLabel labelPago2;
private JLabel labelPago3;
private JLabel labelPago4;
private JLabel labelPago5;
private JLabel labelPago6;
private JLabel labelPago7;
private JLabel labelPago8;
private JLabel labelPago9;
private JLabel labelPago10;
private JLabel labelPago11;
private JLabel labelPago12;
private JButton btnPago1;
private JButton btnPago2;
private JButton btnPago3;
private JButton btnPago4;
private JButton btnPago5;
private JButton btnPago6;
private JButton btnPago7;
private JButton btnPago8;
private JButton btnPago9;
private JButton btnPago10;
private JButton btnPago11;
private JButton btnPago12;
private JLabel labelPagoCompleto;
public PanelPagos() {
panelBusqueda = new JPanel();
panelCuotas = new JPanel();
labelId = new JLabel("ID:");
txtId = new JTextField(10);
buttonBuscar = new JButton("Buscar");
buttonBuscar.addActionListener(this);
panelBusqueda.add(labelId);
panelBusqueda.add(txtId);
panelBusqueda.add(buttonBuscar);
///////////////////////////////
labelPago1 = new JLabel("Pago #1: ");
labelPago1.setEnabled(false);
labelPago2 = new JLabel("Pago #2: ");
labelPago2.setEnabled(false);
labelPago3 = new JLabel("Pago #3: ");
labelPago3.setEnabled(false);
labelPago4 = new JLabel("Pago #4: ");
labelPago4.setEnabled(false);
labelPago5 = new JLabel("Pago #5: ");
labelPago5.setEnabled(false);
labelPago6 = new JLabel("Pago #6: ");
labelPago6.setEnabled(false);
labelPago7 = new JLabel("Pago #7: ");
labelPago7.setEnabled(false);
labelPago8 = new JLabel("Pago #8: ");
labelPago8.setEnabled(false);
labelPago9 = new JLabel("Pago #9: ");
labelPago9.setEnabled(false);
labelPago10 = new JLabel("Pago #10: ");
labelPago10.setEnabled(false);
labelPago11 = new JLabel("Pago #11: ");
labelPago11.setEnabled(false);
labelPago12 = new JLabel("Pago #12: ");
labelPago12.setEnabled(false);
btnPago1 = new JButton("Pagar");
btnPago1.addActionListener(this);
btnPago1.setEnabled(false);
btnPago2 = new JButton("Pagar");
btnPago2.addActionListener(this);
btnPago2.setEnabled(false);
btnPago3 = new JButton("Pagar");
btnPago3.addActionListener(this);
btnPago3.setEnabled(false);
btnPago4 = new JButton("Pagar");
btnPago4.addActionListener(this);
btnPago4.setEnabled(false);
btnPago5 = new JButton("Pagar");
btnPago5.addActionListener(this);
btnPago5.setEnabled(false);
btnPago6 = new JButton("Pagar");
btnPago6.addActionListener(this);
btnPago6.setEnabled(false);
btnPago7 = new JButton("Pagar");
btnPago7.addActionListener(this);
btnPago7.setEnabled(false);
btnPago8 = new JButton("Pagar");
btnPago8.addActionListener(this);
btnPago8.setEnabled(false);
btnPago9 = new JButton("Pagar");
btnPago9.addActionListener(this);
btnPago9.setEnabled(false);
btnPago10 = new JButton("Pagar");
btnPago10.addActionListener(this);
btnPago10.setEnabled(false);
btnPago11 = new JButton("Pagar");
btnPago11.addActionListener(this);
btnPago11.setEnabled(false);
btnPago12 = new JButton("Pagar");
btnPago12.addActionListener(this);
btnPago12.setEnabled(false);
panelCuotas.setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
panelCuotas.add(labelPago1, gbc);
gbc.gridx = 1;
gbc.gridy = 0;
panelCuotas.add(btnPago1, gbc);
gbc.gridx = 0;
gbc.gridy = 1;
panelCuotas.add(labelPago2, gbc);
gbc.gridx = 1;
gbc.gridy = 1;
panelCuotas.add(btnPago2, gbc);
gbc.gridx = 0;
gbc.gridy = 2;
panelCuotas.add(labelPago3, gbc);
gbc.gridx = 1;
gbc.gridy = 2;
panelCuotas.add(btnPago3, gbc);
gbc.gridx = 0;
gbc.gridy = 3;
panelCuotas.add(labelPago4, gbc);
gbc.gridx = 1;
gbc.gridy = 3;
panelCuotas.add(btnPago4, gbc);
gbc.gridx = 0;
gbc.gridy = 4;
panelCuotas.add(labelPago5, gbc);
gbc.gridx = 1;
gbc.gridy = 4;
panelCuotas.add(btnPago5, gbc);
gbc.gridx = 0;
gbc.gridy = 5;
panelCuotas.add(labelPago6, gbc);
gbc.gridx = 1;
gbc.gridy = 5;
panelCuotas.add(btnPago6, gbc);
/////////////////////////////////
this.add(panelBusqueda);
this.add(panelCuotas);
}
public String getTxtId() {
return txtId.getText();
}
public void setTxtId(String txtId) {
this.txtId.setText(txtId);
}
@Override
public void actionPerformed(ActionEvent evento) {
Empresa e = Empresa.getInstance();
if (evento.getSource() == buttonBuscar){
System.out.println("Oprimiste Buscar");
if (e.buscarCliente(getTxtId())==true) {
if (e.mostrarLista().get(e.calcularPosicion(getTxtId())).getPagos().getCuotasPagas()==0) {
btnPago1.setEnabled(true);
btnPago2.setEnabled(false);
btnPago3.setEnabled(false);
btnPago4.setEnabled(false);
btnPago5.setEnabled(false);
btnPago6.setEnabled(false);
btnPago7.setEnabled(false);
btnPago8.setEnabled(false);
btnPago9.setEnabled(false);
btnPago10.setEnabled(false);
btnPago11.setEnabled(false);
btnPago12.setEnabled(false);
}
if (evento.getSource()==btnPago1) {
System.out.println("dddddd");
System.out.println(e.mostrarLista().get(e.calcularPosicion(getTxtId())).getPagos().getCuotasPagas());
System.out.println("boton 1");
System.out.println(e.mostrarLista().get(e.calcularPosicion(getTxtId())).getPagos().getCuotasPagas());
e.mostrarLista().get(e.calcularPosicion(getTxtId())).getPagos().setCuotasPagas(1);
}
}else if (e.mostrarLista().get(e.calcularPosicion(getTxtId())).getPagos().getCuotasPagas()==1) {
btnPago1.setEnabled(false);
btnPago1.setToolTipText("Cuota ya paga");
btnPago2.setEnabled(true);
btnPago3.setEnabled(false);
btnPago4.setEnabled(false);
btnPago5.setEnabled(false);
btnPago6.setEnabled(false);
btnPago7.setEnabled(false);
btnPago8.setEnabled(false);
btnPago9.setEnabled(false);
btnPago10.setEnabled(false);
btnPago11.setEnabled(false);
btnPago12.setEnabled(false);
if (evento.getSource()==btnPago2) {
e.mostrarLista().get(e.calcularPosicion(getTxtId())).getPagos().setCuotasPagas(2);
}
} else if (e.mostrarLista().get(e.calcularPosicion(getTxtId())).getPagos().getCuotasPagas()==2) {
btnPago1.setEnabled(false);
btnPago1.setToolTipText("Cuota ya paga");
btnPago2.setEnabled(false);
btnPago2.setToolTipText("Cuota ya paga");
btnPago3.setEnabled(true);
btnPago4.setEnabled(false);
btnPago5.setEnabled(false);
btnPago6.setEnabled(false);
btnPago7.setEnabled(false);
btnPago8.setEnabled(false);
btnPago9.setEnabled(false);
btnPago10.setEnabled(false);
btnPago11.setEnabled(false);
btnPago12.setEnabled(false);
if (evento.getSource()==btnPago3) {
e.mostrarLista().get(e.calcularPosicion(getTxtId())).getPagos().setCuotasPagas(3);
}
}else if (e.mostrarLista().get(e.calcularPosicion(getTxtId())).getPagos().getCuotasPagas()==3) {
btnPago1.setEnabled(false);
btnPago1.setToolTipText("Cuota ya paga");
btnPago2.setEnabled(false);
btnPago2.setToolTipText("Cuota ya paga");
btnPago3.setEnabled(false);
btnPago3.setToolTipText("Cuota ya paga");
btnPago4.setEnabled(true);
btnPago5.setEnabled(false);
btnPago6.setEnabled(false);
btnPago7.setEnabled(false);
btnPago8.setEnabled(false);
btnPago9.setEnabled(false);
btnPago10.setEnabled(false);
btnPago11.setEnabled(false);
btnPago12.setEnabled(false);
if (evento.getSource()==btnPago4) {
e.mostrarLista().get(e.calcularPosicion(getTxtId())).getPagos().setCuotasPagas(4);
}
}else if (e.mostrarLista().get(e.calcularPosicion(getTxtId())).getPagos().getCuotasPagas()==4) {
btnPago1.setEnabled(false);
btnPago1.setToolTipText("Cuota ya paga");
btnPago2.setEnabled(false);
btnPago2.setToolTipText("Cuota ya paga");
btnPago3.setEnabled(false);
btnPago3.setToolTipText("Cuota ya paga");
btnPago4.setEnabled(false);
btnPago4.setToolTipText("Cuota ya paga");
btnPago5.setEnabled(true);
btnPago6.setEnabled(false);
btnPago7.setEnabled(false);
btnPago8.setEnabled(false);
btnPago9.setEnabled(false);
btnPago10.setEnabled(false);
btnPago11.setEnabled(false);
btnPago12.setEnabled(false);
if (evento.getSource()==btnPago5) {
e.mostrarLista().get(e.calcularPosicion(getTxtId())).getPagos().setCuotasPagas(5);
}
}else if (e.mostrarLista().get(e.calcularPosicion(getTxtId())).getPagos().getCuotasPagas()==5) {
btnPago1.setEnabled(false);
btnPago1.setToolTipText("Cuota ya paga");
btnPago2.setEnabled(false);
btnPago2.setToolTipText("Cuota ya paga");
btnPago3.setEnabled(false);
btnPago3.setToolTipText("Cuota ya paga");
btnPago4.setEnabled(false);
btnPago3.setToolTipText("Cuota ya paga");
btnPago5.setEnabled(false);
btnPago3.setToolTipText("Cuota ya paga");
btnPago6.setEnabled(true);
btnPago7.setEnabled(false);
btnPago8.setEnabled(false);
btnPago9.setEnabled(false);
btnPago10.setEnabled(false);
btnPago11.setEnabled(false);
btnPago12.setEnabled(false);
if (evento.getSource()==btnPago6) {
e.mostrarLista().get(e.calcularPosicion(getTxtId())).getPagos().setCuotasPagas(6);
}
}else if (e.mostrarLista().get(e.calcularPosicion(getTxtId())).getPagos().getCuotasPagas()==6) {
btnPago1.setEnabled(false);
btnPago1.setToolTipText("Cuota ya paga");
btnPago2.setEnabled(false);
btnPago2.setToolTipText("Cuota ya paga");
btnPago3.setEnabled(false);
btnPago3.setToolTipText("Cuota ya paga");
btnPago4.setEnabled(false);
btnPago4.setToolTipText("Cuota ya paga");
btnPago5.setEnabled(false);
btnPago5.setToolTipText("Cuota ya paga");
btnPago6.setEnabled(false);
btnPago6.setToolTipText("Cuota ya paga");
btnPago7.setEnabled(true);
btnPago8.setEnabled(false);
btnPago9.setEnabled(false);
btnPago10.setEnabled(false);
btnPago11.setEnabled(false);
btnPago12.setEnabled(false);
if (evento.getSource()==btnPago7) {
e.mostrarLista().get(e.calcularPosicion(getTxtId())).getPagos().setCuotasPagas(7);
}
}else if (e.mostrarLista().get(e.calcularPosicion(getTxtId())).getPagos().getCuotasPagas()==7) {
btnPago1.setEnabled(false);
btnPago1.setToolTipText("Cuota ya paga");
btnPago2.setEnabled(false);
btnPago2.setToolTipText("Cuota ya paga");
btnPago3.setEnabled(false);
btnPago3.setToolTipText("Cuota ya paga");
btnPago4.setEnabled(true);
btnPago4.setToolTipText("Cuota ya paga");
btnPago5.setEnabled(false);
btnPago5.setToolTipText("Cuota ya paga");
btnPago6.setEnabled(false);
btnPago6.setToolTipText("Cuota ya paga");
btnPago7.setEnabled(false);
btnPago7.setToolTipText("Cuota ya paga");
btnPago8.setEnabled(true);
btnPago9.setEnabled(false);
btnPago10.setEnabled(false);
btnPago11.setEnabled(false);
btnPago12.setEnabled(false);
if (evento.getSource()==btnPago8) {
e.mostrarLista().get(e.calcularPosicion(getTxtId())).getPagos().setCuotasPagas(8);
}
}else if (e.mostrarLista().get(e.calcularPosicion(getTxtId())).getPagos().getCuotasPagas()==8) {
btnPago1.setEnabled(false);
btnPago1.setToolTipText("Cuota ya paga");
btnPago2.setEnabled(false);
btnPago2.setToolTipText("Cuota ya paga");
btnPago3.setEnabled(false);
btnPago3.setToolTipText("Cuota ya paga");
btnPago4.setEnabled(true);
btnPago4.setToolTipText("Cuota ya paga");
btnPago5.setEnabled(false);
btnPago5.setToolTipText("Cuota ya paga");
btnPago6.setEnabled(false);
btnPago6.setToolTipText("Cuota ya paga");
btnPago7.setEnabled(false);
btnPago7.setToolTipText("Cuota ya paga");
btnPago8.setEnabled(false);
btnPago8.setToolTipText("Cuota ya paga");
btnPago9.setEnabled(true);
btnPago10.setEnabled(false);
btnPago11.setEnabled(false);
btnPago12.setEnabled(false);
if (evento.getSource()==btnPago9) {
e.mostrarLista().get(e.calcularPosicion(getTxtId())).getPagos().setCuotasPagas(9);
}
}else if (e.mostrarLista().get(e.calcularPosicion(getTxtId())).getPagos().getCuotasPagas()==9) {
btnPago1.setEnabled(false);
btnPago1.setToolTipText("Cuota ya paga");
btnPago2.setEnabled(false);
btnPago2.setToolTipText("Cuota ya paga");
btnPago3.setEnabled(false);
btnPago3.setToolTipText("Cuota ya paga");
btnPago4.setEnabled(true);
btnPago4.setToolTipText("Cuota ya paga");
btnPago5.setEnabled(false);
btnPago5.setToolTipText("Cuota ya paga");
btnPago6.setEnabled(false);
btnPago6.setToolTipText("Cuota ya paga");
btnPago7.setEnabled(false);
btnPago7.setToolTipText("Cuota ya paga");
btnPago8.setEnabled(false);
btnPago8.setToolTipText("Cuota ya paga");
btnPago9.setEnabled(false);
btnPago9.setToolTipText("Cuota ya paga");
btnPago10.setEnabled(true);
btnPago11.setEnabled(false);
btnPago12.setEnabled(false);
if (evento.getSource()==btnPago10) {
e.mostrarLista().get(e.calcularPosicion(getTxtId())).getPagos().setCuotasPagas(10);
}
}else if (e.mostrarLista().get(e.calcularPosicion(getTxtId())).getPagos().getCuotasPagas()==10) {
btnPago1.setEnabled(false);
btnPago1.setToolTipText("Cuota ya paga");
btnPago2.setEnabled(false);
btnPago2.setToolTipText("Cuota ya paga");
btnPago3.setEnabled(false);
btnPago3.setToolTipText("Cuota ya paga");
btnPago4.setEnabled(true);
btnPago4.setToolTipText("Cuota ya paga");
btnPago5.setEnabled(false);
btnPago5.setToolTipText("Cuota ya paga");
btnPago6.setEnabled(false);
btnPago6.setToolTipText("Cuota ya paga");
btnPago7.setEnabled(false);
btnPago7.setToolTipText("Cuota ya paga");
btnPago8.setEnabled(false);
btnPago8.setToolTipText("Cuota ya paga");
btnPago9.setEnabled(false);
btnPago9.setToolTipText("Cuota ya paga");
btnPago10.setEnabled(false);
btnPago10.setToolTipText("Cuota ya paga");
btnPago11.setEnabled(false);
btnPago12.setEnabled(false);
if (evento.getSource()==btnPago11) {
e.mostrarLista().get(e.calcularPosicion(getTxtId())).getPagos().setCuotasPagas(11);
}
}else if (e.mostrarLista().get(e.calcularPosicion(getTxtId())).getPagos().getCuotasPagas()==11) {
btnPago1.setEnabled(false);
btnPago1.setToolTipText("Cuota ya paga");
btnPago2.setEnabled(false);
btnPago2.setToolTipText("Cuota ya paga");
btnPago3.setEnabled(false);
btnPago3.setToolTipText("Cuota ya paga");
btnPago4.setEnabled(true);
btnPago4.setToolTipText("Cuota ya paga");
btnPago5.setEnabled(false);
btnPago5.setToolTipText("Cuota ya paga");
btnPago6.setEnabled(false);
btnPago6.setToolTipText("Cuota ya paga");
btnPago7.setEnabled(false);
btnPago7.setToolTipText("Cuota ya paga");
btnPago8.setEnabled(false);
btnPago8.setToolTipText("Cuota ya paga");
btnPago9.setEnabled(false);
btnPago9.setToolTipText("Cuota ya paga");
btnPago10.setEnabled(false);
btnPago10.setToolTipText("Cuota ya paga");
btnPago11.setEnabled(false);
btnPago11.setToolTipText("Cuota ya paga");
btnPago12.setEnabled(true);
if (evento.getSource()==btnPago12) {
e.mostrarLista().get(e.calcularPosicion(getTxtId())).getPagos().setCuotasPagas(12);
}
}else if (e.mostrarLista().get(e.calcularPosicion(getTxtId())).getPagos().getCuotasPagas()==12) {
btnPago1.setEnabled(false);
btnPago1.setToolTipText("Cuota ya paga");
btnPago2.setEnabled(false);
btnPago2.setToolTipText("Cuota ya paga");
btnPago3.setEnabled(false);
btnPago3.setToolTipText("Cuota ya paga");
btnPago4.setEnabled(true);
btnPago4.setToolTipText("Cuota ya paga");
btnPago5.setEnabled(false);
btnPago5.setToolTipText("Cuota ya paga");
btnPago6.setEnabled(false);
btnPago6.setToolTipText("Cuota ya paga");
btnPago7.setEnabled(false);
btnPago7.setToolTipText("Cuota ya paga");
btnPago8.setEnabled(false);
btnPago8.setToolTipText("Cuota ya paga");
btnPago9.setEnabled(false);
btnPago9.setToolTipText("Cuota ya paga");
btnPago10.setEnabled(false);
btnPago10.setToolTipText("Cuota ya paga");
btnPago11.setEnabled(false);
btnPago11.setToolTipText("Cuota ya paga");
btnPago12.setEnabled(false);
btnPago12.setToolTipText("Cuota ya paga");
if (btnPago1.isEnabled()==false && btnPago2.isEnabled()==false && btnPago3.isEnabled()==false && btnPago4.isEnabled()==false &&
btnPago5.isEnabled()==false && btnPago6.isEnabled()==false && btnPago7.isEnabled()==false && btnPago8.isEnabled()==false &&
btnPago9.isEnabled()==false && btnPago10.isEnabled()==false && btnPago11.isEnabled()==false && btnPago12.isEnabled()==false) {
labelPagoCompleto = new JLabel("TODAS LAS CUOTAS ESTAN PAGAS. DIRIGETE AL CENTRO PARA MANTENER, MODIFICAR O ELIMINAR TU MEMBRESIA");
this.add(labelPagoCompleto);
}
}
}
}
}
答案 0 :(得分:1)
如果eventSource是buttonBuscar
if (evento.getSource() == buttonBuscar) {
删除此行,您的代码应该开始适用于所有按钮。另外,请阅读SSCCE
的链接答案 1 :(得分:1)
建议:
例如,您可以创建一个类,我在这里称为ButtonLabel,它允许您组合JLabel和JButton,这很简单,
/**
* class ButtonLabel </p>
* Description:
* Putting a JButton and JLabel together will
* make it easier to enable and disable both at the same time
*/
class ButtonLabel {
private int index;
private JLabel label;
private JButton button;
public ButtonLabel(int index, JLabel label, JButton button, boolean enabled) {
this.index = index;
this.label = label;
this.button = button;
label.setEnabled(enabled);
button.setEnabled(enabled);
}
public int getIndex() {
return index;
}
public JLabel getLabel() {
return label;
}
public JButton getButton() {
return button;
}
public void setEnabled(boolean enabled) {
label.setEnabled(enabled);
button.setEnabled(enabled);
}
public boolean isEnabled() {
return button.isEnabled();
}
}
然后主GUI可以包含这些的集合,可能是数组或ArrayList或HashMap,这些都取决于您想要如何访问按钮。
你的Pagar按钮可以有自己的Action / ActionListener,类似于:
private class ButtonLabelAction extends AbstractAction {
private int index;
public ButtonLabelAction(String name, int index) {
super(name);
this.index = index;
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO: code for each pagar button's action
JOptionPane.showMessageDialog(PanelPagos2.this,
"You've pressed Pagos button #" + index);
}
}
这可能有特定于Pagar按钮需要的代码。
Buscar按钮可以有自己的Action / ActionListener,例如
private class BuscarAction extends AbstractAction {
public BuscarAction(String name) {
super(name);
int mnemonic = (int) name.charAt(0);
putValue(MNEMONIC_KEY, mnemonic);
}
@Override
public void actionPerformed(ActionEvent e) {
// assuming use of a JComboBox called pagoCombo
String selection = (String) pagoCombo.getSelectedItem();
// assuming use of a HashMap called btnLabelMap that
// holds ButtonLabel values matched to a String key.
for (ButtonLabel btnLabel : btnLabelMap.values()) {
btnLabel.setEnabled(false);
}
if (selection != null && !selection.trim().isEmpty()) {
btnLabelMap.get(selection).setEnabled(true);
}
}
}
例如,
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.*;
import java.util.HashMap;
import java.util.Map;
import javax.swing.*;
@SuppressWarnings("serial")
public class PanelPagos2 extends JPanel {
public static final int PAGO_CUENTA = 12;
private Map<String, ButtonLabel> btnLabelMap = new HashMap<String, ButtonLabel>();
private DefaultComboBoxModel<String> pagoComboModel = new DefaultComboBoxModel<>();
private JComboBox<String> pagoCombo = new JComboBox<String>(pagoComboModel);
public PanelPagos2() {
JPanel mainPanel = new JPanel();
JPanel scrolledPanel = new JPanel();
JScrollPane scrollPane = new JScrollPane(scrolledPanel);
scrollPane
.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
scrolledPanel.setLayout(new GridBagLayout());
pagoComboModel.addElement("");
for (int i = 0; i < PAGO_CUENTA; i++) {
int index = i + 1;
String indexText = String.valueOf(index);
pagoComboModel.addElement(indexText);
String labelText = String.format("Pago #%02d:", index);
JLabel label = new JLabel(labelText);
ButtonLabelAction buttonLabelAction = new ButtonLabelAction("Pagar", index);
JButton button = new JButton(buttonLabelAction);
ButtonLabel btnLabel = new ButtonLabel(index, label, button, false);
btnLabelMap.put(indexText, btnLabel);
scrolledPanel.add(label, createGbc(0, i));
scrolledPanel.add(button, createGbc(1, i));
}
JViewport viewport = scrollPane.getViewport();
int psWidth = viewport.getPreferredSize().width;
int psHeight = viewport.getPreferredSize().height / 2;
Dimension prefSize = new Dimension(psWidth, psHeight);
viewport.setPreferredSize(prefSize);
mainPanel.add(new JLabel("ID:"));
mainPanel.add(pagoCombo);
mainPanel.add(new JButton(new BuscarAction("Buscar")));
add(mainPanel);
add(scrollPane);
}
private static GridBagConstraints createGbc(int x, int y) {
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = x;
gbc.gridy = y;
gbc.gridwidth = 1;
gbc.gridheight = 1;
gbc.weightx = 1.0;
gbc.weighty = 1.0;
gbc.anchor = x == 0 ? GridBagConstraints.WEST : GridBagConstraints.EAST;
gbc.fill = x == 0 ? GridBagConstraints.BOTH
: GridBagConstraints.HORIZONTAL;
int right = x == 0 ? 3 : 0;
int left = right;
gbc.insets = new Insets(0, left, 0, right);
return gbc;
}
private class BuscarAction extends AbstractAction {
public BuscarAction(String name) {
super(name);
int mnemonic = (int) name.charAt(0);
putValue(MNEMONIC_KEY, mnemonic);
}
@Override
public void actionPerformed(ActionEvent e) {
String selection = (String) pagoCombo.getSelectedItem();
for (ButtonLabel btnLabel : btnLabelMap.values()) {
btnLabel.setEnabled(false);
}
if (selection != null && !selection.trim().isEmpty()) {
btnLabelMap.get(selection).setEnabled(true);
}
}
}
private class ButtonLabelAction extends AbstractAction {
private int index;
public ButtonLabelAction(String name, int index) {
super(name);
this.index = index;
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO: code for each pagar button's action
JOptionPane.showMessageDialog(PanelPagos2.this,
"You've pressed Pagos button #" + index);
}
}
private static void createAndShowGui() {
PanelPagos2 mainPanel = new PanelPagos2();
JFrame frame = new JFrame("PanelPagos2");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.getContentPane().add(mainPanel);
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGui();
}
});
}
}
/**
* class ButtonLabel </p>
* Description:
* Putting a JButton and JLabel together will
* make it easier to enable and disable both at the same time
*/
class ButtonLabel {
private int index;
private JLabel label;
private JButton button;
public ButtonLabel(int index, JLabel label, JButton button, boolean enabled) {
this.index = index;
this.label = label;
this.button = button;
label.setEnabled(enabled);
button.setEnabled(enabled);
}
public int getIndex() {
return index;
}
public JLabel getLabel() {
return label;
}
public JButton getButton() {
return button;
}
public void setEnabled(boolean enabled) {
label.setEnabled(enabled);
button.setEnabled(enabled);
}
public boolean isEnabled() {
return button.isEnabled();
}
}