Добавление элементов в JPanel с кнопкойJAVA

Программисты JAVA общаются здесь
Anonymous
Добавление элементов в JPanel с кнопкой

Сообщение Anonymous »

Я пытался создать программу, которая отслеживает список покупок и добавляет новые jlabels всякий раз, когда нажаты соответствующие кнопки, но по какой -то причине всякий раз, когда я нажимаю кнопку ничего нового не появляется < /p>

Код: Выделить всё

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JLabel;
import java.awt.Font;
import javax.swing.JButton;
import javax.swing.LayoutStyle.ComponentPlacement;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JTextField;
import java.awt.Point;
import javax.swing.SwingConstants;
import java.awt.GridLayout;
import javax.swing.SpringLayout;
import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;

public class shoppingJframe extends JFrame {

private static final long serialVersionUID = 1L;
public int totalitemNum = 0;
public int buttonGap = 18 + (30 * totalitemNum);

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
shoppingJframe frame = new shoppingJframe();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public shoppingJframe() {
setTitle("Shopping Cart");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 592, 568);
JPanel contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

setContentPane(contentPane);

JPanel itemPanel = new JPanel();

JLabel CartLbl = new JLabel("Shopping Cart: ");
CartLbl.setFont(new Font("Tahoma", Font.PLAIN, 14));

JLabel Item1Lbl = new JLabel("Item 1 - $10.0");
Item1Lbl.setFont(new Font("Tahoma", Font.PLAIN, 14));
Item1Lbl.setSize(40,30);

JLabel Item2Lbl = new JLabel("Item 2 - $20.0");
Item2Lbl.setFont(new Font("Tahoma", Font.PLAIN, 14));
Item2Lbl.setSize(40,30);

JLabel Item3Lbl = new JLabel("Item 3 - $30.0");
Item3Lbl.setFont(new Font("Tahoma", Font.PLAIN, 14));
Item3Lbl.setSize(40,30);

JButton Item1Btn = new JButton("Add Item 1 to Cart");
Item1Btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

totalitemNum++;

itemPanel.add(Item1Lbl);
CartLbl.setText("Shopping Cart (" + totalitemNum + " items):");
contentPane.revalidate();
itemPanel.revalidate();

}
});
Item1Btn.setFont(new Font("Tahoma", Font.PLAIN, 14));

JButton Item2Btn = new JButton("Add Item 2 To Cart");
Item2Btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

totalitemNum++;

itemPanel.add(Item2Lbl);
CartLbl.setText("Shopping Cart (" + totalitemNum + " items):");
contentPane.revalidate();
itemPanel.revalidate();

}
});
Item2Btn.setFont(new Font("Tahoma", Font.PLAIN, 14));

JButton Item3Btn = new JButton("Add Item 3 To Cart");
Item3Btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

totalitemNum++;

itemPanel.add(Item3Lbl);
CartLbl.setText("Shopping Cart (" + totalitemNum + "  items):");
contentPane.revalidate();
itemPanel.revalidate();

}
});
Item3Btn.setFont(new Font("Tahoma", Font.PLAIN, 14));

GroupLayout gl_contentPane = new GroupLayout(contentPane);
gl_contentPane.setHorizontalGroup(
gl_contentPane.createParallelGroup(Alignment.LEADING)
.addGroup(gl_contentPane.createSequentialGroup()
.addGap(32)
.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING, false)
.addComponent(Item1Btn, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(CartLbl, GroupLayout.DEFAULT_SIZE, 117, Short.MAX_VALUE)
.addComponent(Item2Btn, GroupLayout.DEFAULT_SIZE, 169, Short.MAX_VALUE)
.addComponent(Item3Btn, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(itemPanel, GroupLayout.PREFERRED_SIZE, 247, GroupLayout.PREFERRED_SIZE)
.addContainerGap(114, Short.MAX_VALUE))
);
gl_contentPane.setVerticalGroup(
gl_contentPane.createParallelGroup(Alignment.LEADING)
.addGroup(gl_contentPane.createSequentialGroup()
.addGap(27)
.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
.addComponent(itemPanel, GroupLayout.PREFERRED_SIZE, 459, GroupLayout.PREFERRED_SIZE)
.addGroup(gl_contentPane.createSequentialGroup()
.addComponent(CartLbl, GroupLayout.PREFERRED_SIZE, 41, GroupLayout.PREFERRED_SIZE)
.addGap(buttonGap)
.addComponent(Item1Btn, GroupLayout.PREFERRED_SIZE, 29, GroupLayout.PREFERRED_SIZE)
.addGap(18)
.addComponent(Item2Btn, GroupLayout.PREFERRED_SIZE, 29, GroupLayout.PREFERRED_SIZE)
.addGap(18)
.addComponent(Item3Btn, GroupLayout.PREFERRED_SIZE, 29, GroupLayout.PREFERRED_SIZE)))
.addContainerGap(35, Short.MAX_VALUE))
);
GroupLayout gl_itemPanel = new GroupLayout(itemPanel);
gl_itemPanel.setHorizontalGroup(
gl_itemPanel.createParallelGroup(Alignment.LEADING)
.addGap(0, 247, Short.MAX_VALUE)
);
gl_itemPanel.setVerticalGroup(
gl_itemPanel.createParallelGroup(Alignment.LEADING)
.addGap(0, 459, Short.MAX_VALUE)
);
itemPanel.setLayout(gl_itemPanel);
contentPane.setLayout(gl_contentPane);
}
}
Я, честно говоря, даже не уверен, с чего начать пытаться решить проблему, я просто смотрел на своего компилятора на то, что кажется, что веки пытаются понять проблему.

Подробнее здесь: https://stackoverflow.com/questions/795 ... h-a-button

Вернуться в «JAVA»