[java swing]コンピテンシー値再抽出機能の作成

24441 ワード


<コンテンツの作成>
出て行け!ボタンを押すと、次の5つのオプションのうち3つをランダムに作成し、数値を決定するプログラムがあります.
『タイガーマシン』
力増加:+1~+7
インテリジェント増加:+1~+7
敏捷増加:+1~+7
ラッキー増加:+1~+7
攻撃力増加:+1~+3
ボタンに関連するクラス2つとmainクラス1つを記述した.

1.ボタンに関連する2つのクラス


RandomButtonクラスを作成し、
  • 5のオプションの1つをランダムに決定します.
    古里は、RandomButtonの3つのインスタンスを含むRollButtonクラスを作成します.
  • 
    
    import java.util.Random;
    
    import javax.swing.JButton;
    
    public class RandomButton extends JButton{
    	
    	static String[] stat_labels = {"힘","민첩","지능","행운","공격력"};
    	static int[] max_stats = {7,7,7,7,3};
    	
    	
    	Random ran;
    	
    	public RandomButton() {
    		super("능력치 부여하기");
    		ran = new Random();
    	}
    	
    	void roll() {
    		
    		int value = ran.nextInt(stat_labels.length);
    		setText(stat_labels[value] + " + " + (int)(Math.random()*(max_stats[value]) + 1));
    		
    		
    	}
    }
    
    public class RollButton extends JButton{
    	
    	private ArrayList<RandomButton> ranBtns;
    
    	public RollButton() {
    		
    		setText("옵션 변경");
    		ranBtns = new ArrayList<>();
    		RandomButton b1 = new RandomButton();
    		b1.setLocation(175,40);
    		b1.setSize(150,30);
    		RandomButton b2 = new RandomButton();
    		b2.setLocation(175,90);
    		b2.setSize(150,30);
    		RandomButton b3 = new RandomButton();
    		b3.setLocation(175,140);
    		b3.setSize(150,30);
    		b1.setBackground(new Color(0x8a5700));
    		b2.setBackground(new Color(0x8a5700));
    		b3.setBackground(new Color(0x8a5700));
    		b1.setForeground(new Color(0xfffef5));
    		b2.setForeground(new Color(0xfffef5));
    		b3.setForeground(new Color(0xfffef5));
    		b1.setFont(new Font("고딕",Font.BOLD,16));
    		b2.setFont(new Font("고딕",Font.BOLD,16));
    		b3.setFont(new Font("고딕",Font.BOLD,16));
    
    		ranBtns.add(b1);
    		ranBtns.add(b2);
    		ranBtns.add(b3);
    		
    		addActionListener(new ActionListener() {
    			
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				
    				for(RandomButton btn : ranBtns) {
    					btn.roll();
    				}
    				
    			}//actionPerformed
    		});
    	}
    
    	public ArrayList<RandomButton> getRanBtns() {
    		return ranBtns;
    	}
    	
    }

    2.主クラス

    public class Baram extends JFrame{
    	
    	private ArrayList<RandomButton> ranBtns;
    	
    	Random ran;
    	
    	public Baram() {
    		super("바람의 나라:연");
    		setLayout(null);
    		setDefaultCloseOperation(EXIT_ON_CLOSE);
    		setLocation(2000,100);
    		setSize(500,400);
    		setVisible(true);
    		getContentPane().setBackground(new Color(0x041e47));
    		ranBtns = new ArrayList<>();
    		
    		RollButton btn = new RollButton();
    		btn.setLocation(170,230);
    		btn.setBackground(new Color(0xde9631));
    		btn.setForeground(new Color(0xfffef5));
    		btn.setFont(new Font("고딕",Font.BOLD,20));
    		btn.setSize(160,60);
    
    		Border border = new LineBorder(Color.black,2);
    		btn.setBorder(border);
    		add(btn);
    		
    		for(RandomButton ranbtn : btn.getRanBtns()){
    			add(ranbtn);
    		}
    		
    	}
    	
    	
    	public static void main(String[] args) {
    	
    		new Baram();
    	}
    	
    }