import javax.swing.*;
import java.awt.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
public class Gui extends JFrame {
JPanel panel1;
JMenuBar daysMenu;
JMenu[] days;
JMenu chestMenu, backMenu, legsMenu, armsMenu, shouldersMenu;
JMenuItem[] chest, back, legs, arms, shoulders;
JLabel[] abs1, abs2;
public Gui() {
setResizable(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// setSize(1000,1000);
setTitle("Gym Workout Program");
setLocationRelativeTo(null);
days = new JMenu[7];
for (int i = 0; i < days.length; i++) {
days[i] = new JMenu();
}
days[0].setText("MONDAY");
days[1].setText("TUESDAY");
days[2].setText("WEDNESDAY");
days[3].setText("THURSDAY");
days[4].setText("FRIDAY");
days[5].setText("SATURDAY");
days[6].setText("SUNDAY");
daysMenu = new JMenuBar();
for (JMenu day : days) {
daysMenu.add(day);
}
setJMenuBar(daysMenu);
// bodyPartsMenu
chestMenu = new JMenu("Chest(1X12,2X10,2X8)");
chest = new JMenuItem[5];
for (int i = 0; i < chest.length; i++) {
chest[i] = new JMenuItem();
}
chest[0].setText("Bench Press");
chest[1].setText("Incline Press w/ Dumbbells");
chest[2].setText("Chest Flyes w/ Dumbbells 180˚");
chest[3].setText("Pullover w/ Dumbbells");
chest[4].setText("Dips(Reps till failure/3X10)");
for (JMenuItem item : chest) {
chestMenu.add(item);
}
days[0].add(chestMenu);
backMenu = new JMenu("Back(1X12,2X10,2X8)");
back = new JMenuItem[4];
for (int i = 0; i < back.length; i++) {
back[i] = new JMenuItem();
}
back[0].setText("Pullups 3X10 TRYHARD/ Κ.Λ. Front Pulldowns");
back[1].setText("Bend Over Row with Bar");
back[2].setText("Lat Pulldowns");
back[3].setText("Rowing Machine");
for (JMenuItem item : back) {
backMenu.add(item);
}
days[1].add(backMenu);
days[2].add("KENO");
legsMenu = new JMenu("Legs (1X12,2X10,2X8)");
legs = new JMenuItem[5];
for (int i = 0; i < legs.length; i++) {
legs[i] = new JMenuItem();
}
legs[0].setText("Body Squat/Smith Machine/ w/Dumbbells");
legs[1].setText("Leg Extensions Machine");
legs[2].setText("Leg Curls Machine");
legs[3].setText("Leg Press/ Walking Lunges w/ Dumbbells");
legs[4].setText("Calves Machine 4X15");
for (JMenuItem item : legs) {
legsMenu.add(item);
}
days[3].add(legsMenu);
armsMenu = new JMenu("Arms (1X12,2X10,2X8)");
arms = new JMenuItem[6];
for (int i = 0; i < arms.length; i++) {
arms[i] = new JMenuItem();
}
arms[0].setText("Dumbbell Curls w/ twist");
arms[1].setText("Larry Scot");
arms[2].setText("Dumbbell Hammer Curls");
arms[3].setText("SkullCrushers w/ Bar/Dumbbells");
arms[4].setText("Triceps Press Downs");
arms[5].setText("Reverse Triceps Press Downs");
int countSeperator = 0;
for (JMenuItem item : arms) {
countSeperator++;
armsMenu.add(item);
if (countSeperator == 3) {
armsMenu.addSeparator();
}
}
days[4].add(armsMenu);
shouldersMenu = new JMenu("Shoulders(1X12,2X10,2X8)");
shoulders = new JMenuItem[4];
for (int i = 0; i < shoulders.length; i++) {
shoulders[i] = new JMenuItem();
}
shoulders[0].setText("Military Press Smith Machine");
shoulders[1].setText("Lateral Raises");
shoulders[2].setText("Shoulder Press Machine");
shoulders[3].setText("Traps");
for (JMenuItem item : shoulders) {
shouldersMenu.add(item);
}
days[5].add(shouldersMenu);
days[6].add("KENO");
abs1 = new JLabel[5];
for (int i = 0; i < abs1.length; i++) {
abs1[i] = new JLabel();
}
abs1[0].setText("Full and Elbow Plank(1min each)");
abs1[1].setText("Both Sides Plank(35-50 sec)");
abs1[2].setText("Knee Up-LsitHold High Bar(1min each)");
abs1[3].setText("HollowBodyHold(2X1min) LowerBackDown");
abs1[4].setText("Wheel(2X8reps)");
abs2 = new JLabel[3];
for (int i = 0; i < abs2.length; i++) {
abs2[i] = new JLabel();
}
abs2[0].setText("Leg Raises(3X12)");
abs2[1].setText("Knee Raises(3X12)");
abs2[2].setText("Side and Obliques(3X12)");
JLabel abs3 = new JLabel("Free Choice");
JLabel abs = new JLabel("Abs(3/3+ Times/week)");
add(abs, BorderLayout.NORTH);
JRadioButton b1 = new JRadioButton("Style 1");
JRadioButton b2 = new JRadioButton("Style 2");
JRadioButton b3 = new JRadioButton("Style 3");
ButtonGroup group = new ButtonGroup();
group.add(b1);
group.add(b2);
group.add(b3);
JPanel panel2 = new JPanel(new GridLayout(0, 1));
b1.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED) {
for (JLabel label : abs1) {
panel2.add(label);
}
}
if (e.getStateChange() == ItemEvent.DESELECTED) {
for (JLabel label : abs1) {
panel2.remove(label);
}
}
}
});
b2.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED) {
for (JLabel label : abs2) {
panel2.add(label);
}
}
if (e.getStateChange() == ItemEvent.DESELECTED) {
for (JLabel label : abs2) {
panel2.remove(label);
}
}
}
});
b3.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED) {
panel2.add(abs3);
}
if (e.getStateChange() == ItemEvent.DESELECTED) {
panel2.remove(abs3);
}
}
});
add(panel2, BorderLayout.LINE_END);
panel1 = new JPanel(new GridLayout(0, 1, 50, 50));
panel1.add(b1);
panel1.add(b2);
panel1.add(b3);
add(panel1, BorderLayout.LINE_START);
pack();
setVisible(true);
}
}
JLabelsとJRadioButtonを使用して「absワークアウト」プログラムを表示しようとしています。JLabelsはウィンドウのサイズ変更後にのみ表示されます
すべてのコンポーネントを追加した後、setVisible
とsetVisible(true)
の前にパックを使用しましたが、私のウィンドウのサイズを変更しない限り、私のアイテム(abs1またはabs2またはabs3)は表示されません。
私は例えばスタイル1をクリックすると何も起こりませんし、私は私の窓のサイズを変更するならば、すべてが正常に動作するようです。 助けてください?
)(再検証 '追加;'あなたItemListenersのそれぞれに、あなたのスイング指示しますコンポーネントツリーを変更しました。 – VGR
@ VGRは私のために働いてくれてありがとう。 – JJohnarios