-1
내 프로그램에서 8 개의 체크 박스가 필요하고 그 중 하나가 문장을 클릭하면 첫 번째 두 개의 체크 박스와 함께 작동하지만 3 번째부터는 문제가 발생했습니다 예를 들어 3 번째 클릭 그것은 statemnts를 보여주지 않았다.두 개 이상의 JCheckBox?
아무에게도 문제가 있는지 알려주실 수 있습니까?
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Satis extends JFrame implements ActionListener
{
JCheckBox b1,b2,b3,b4,b5,b6,b7,b8;
JLabel la2,la22,la222,la3,la33,la333,la4,la44,la444,la5,la55,la555,la6,la66,la666,la7,la77,la777,la8,la88,la888,la9,la99,la999;
public Satis()
{
this.setLayout(null);
JLabel la1=new JLabel("Select your problem area to get an advice:");
la1.setBounds(160,20,340,20);
la2=new JLabel("");
la22=new JLabel("");
la222=new JLabel("");
la3=new JLabel("");
la33=new JLabel("");
la333=new JLabel("");
la4=new JLabel("");
la44=new JLabel("");
la444=new JLabel("");
la5=new JLabel("");
la55=new JLabel("");
la555=new JLabel("");
la6=new JLabel("");
la66=new JLabel("");
la666=new JLabel("");
la7=new JLabel("");
la77=new JLabel("");
la777=new JLabel("");
la8=new JLabel("");
la88=new JLabel("");
la888=new JLabel("");
la9=new JLabel("");
la99=new JLabel("");
la999=new JLabel("");
b1=new JCheckBox("Housing");
b1.setBounds(20,45,120,20);
b2=new JCheckBox("Medical");
b2.setBounds(440,45,120,20);
b3=new JCheckBox("Transportation");
b3.setBounds(20,120,140,20);
b4=new JCheckBox("Food");
b4.setBounds(440,120,140,20);
b5=new JCheckBox("Utility");
b6=new JCheckBox("Clothes");
b7=new JCheckBox("Debt payments");
b8=new JCheckBox("Personal");
add(la1);
add(la2);
add(la22);
add(la222);
la2.setBounds(10,60,330,20);
la22.setBounds(10,75,330,20);
la222.setBounds(10,90,330,20);
add(b1);
add(la3);
add(la33);
add(la333);
la3.setBounds(300,60,330,20);
la33.setBounds(300,75,330,20);
la333.setBounds(300,90,330,20);
add(b2);
add(la4);
add(la44);
add(la444);
la4.setBounds(10,135,330,20);
la44.setBounds(10,150,330,20);
la444.setBounds(10,165,330,20);
add(b3);
add(la5);
add(la55);
add(la555);
la5.setBounds(330,135,330,20);
la5.setBounds(330,150,330,20);
la5.setBounds(330,165,330,20);
add(b4);
add(la6);
add(b5);
add(la7);
add(b6);
add(la8);
add(b7);
add(la9);
add(b8);
b1.addActionListener(this);
b2.addActionListener(this);
}
public void actionPerformed (ActionEvent ae)
{
String s=ae.getActionCommand();
if (b1.isSelected())
{
la2.setText("1. Move to a smaller place ");
la22.setText("2. Move further from the city");
la222.setText("3. Raise your insurance deductible");
}else {
la2.setText("");
la22.setText("");
la222.setText("");
}
if (b2.isSelected())
{
la3.setText("1. Dont procrastinate");
la33.setText("2. Reevaluate your vitamins");
la333.setText("3. Ask: Do I really need that test?");
}
else {
la3.setText("");
la33.setText("");
la333.setText("");
}
if (b3.isSelected())
{
la4.setText("1. Calm your driving habits");
la44.setText("2. Take advantage of car insurance discounts");
la444.setText("3. Look for local transportation incentives");
}
else {
la4.setText("");
la44.setText("");
la444.setText("");
}
if (b4.isSelected())
{
la5.setText("1. Make Healthy Choices, they’re Cheaper ");
la55.setText("2. Use Sales and Coupons");
la555.setText("3. Plant a Garden");
}
else {
la5.setText("");
la55.setText("");
la555.setText("");
}
if (b5.isSelected())
{
la6.setText("1. Buy Energy-Efficient Appliances ");
la66.setText("2. Scale Back on Cable Channels");
la666.setText("3. Fix Leaks");
}
else {
la6.setText("");
la66.setText("");
la666.setText("");
}
if (b6.isSelected())
{
la7.setText("1. Buy Better Quality Clothing ");
la77.setText("2. Buy Clothes at the Right Time");
la777.setText("3. Take Care of Your Clothes Better");
}
else {
la7.setText("");
la77.setText("");
la777.setText("");
}
if (b7.isSelected())
{
la8.setText("1. Track Spending ");
la88.setText("2. Build Savings");
la888.setText("3. Reduce Debt");
}
else {
la8.setText("");
la88.setText("");
la888.setText("");
}
if (b8.isSelected())
{
la9.setText("1. Avoid Full-Price Textbooks ");
la99.setText("2. Get deals");
la999.setText("3. Shop online");
}
else {
la9.setText("");
la99.setText("");
la999.setText("");
}
}
public static void main(String[] args)
{
Satis St=new Satis();
St.setVisible(true);
St.setSize(600,400);
}
}
첫 번째 두 개의 JCheckBox에는 적절한 리스너가 추가되어 있으므로 이미 알고있는 방법입니다. 왜이 질문을하는 것입니까? –
1) Java GUI는 다른 로케일의 다른 PLAF를 사용하여 다른 OS, 화면 크기, 화면 해상도 등에서 작동해야합니다. 따라서, 픽셀 완벽한 레이아웃에 도움이되지 않습니다. 대신 레이아웃 관리자 또는 [조합] (http://stackoverflow.com/a/5630271/418556)과 [공백] 레이아웃 채우기 및 테두리 (http://stackoverflow.com/a/17874718/)를 사용하십시오. 418556). 2) 더 나은 도움을 받으려면 [MCVE] 또는 [Short, Self Contained, Correct Example] (http://www.sscce.org/)를 게시하십시오. MCVE에는 8 개가 아닌 3 개의 확인란이 있습니다. –