У меня код про кроликов, не вникайте. Там кнопочки под опр. номером, т. е. массив. почему-то кнопки не появляются, хотя в консоль выводится и ошибок нет Т_Т
Код:
import java.awt.Color;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;
public class game_ai {
public static void main(String[] args) {
myFrame okno = new myFrame();
// int random_number1 = a + (int) (Math.random() * b);
}}
class myFrame extends JFrame
{
public myFrame()
{
myPanel pan = new myPanel();
Container cont = getContentPane();
cont.add(pan);
//setIconImage(Toolkit.getDefaultToolkit().getImage(game_ai.class.getResource("/ICON.png")));
setTitle("NAME");
setBounds(90, 20, 800, 650);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);
setVisible(true);
} }
class myPanel extends JPanel
{
//Ща всо будет
//максимальное количество кролей - 20, значит да будет массив кролей
rabbit[] rabbit = new rabbit[20];//здеся будет инфа о кроликах, типо пола, веса и тд
//у кроликов будет номер, он не зависит от ячейки в массиве
//также нужно создати тело кролей, ето будет кнопошка
//шобы не писати имя, сделаем массив кнопошек, каждая будет привязана к ячейке (нет)
JButton[] rbutton = new JButton[20];
//да, это она. она равна нулю, потому што ява Т_Т
int nm = 0;
//счётчик (тот самый)
int ct = 1; //каунтер начинается с единицы потому што он не связан с массивами
public void spawnr() { //Спавн кроликов ё пэ рэ сэ тэ
//шо мы должны сделати шобы заспавнить кроля?
//свободную ячейку заполнить данными о кроле и его кнопошке
//нам нужна переменная с номером ячейки? я думаю, да
//сверху добавлена переменная nm, номер массива
//создаём кролика
rabbit[nm] = new rabbit();
rabbit[nm].mass = 1; //сейчас пока не будем делати рандом, нафег надо
rabbit[nm].max_speed = 1;
rabbit[nm].age = 0;
rabbit[nm].num = ct;//здеся нужна доп. переменная счётчик чтобы считала номера все (смотри на верх)
//выбираем пол
//а вот тута рандом нада, патамушто анти-девки тоже имеют право на жызнб
Random rand = new Random();//делоим рандом
rabbit[nm].male = rand.nextBoolean();//присваиваим рандом
if (rabbit[nm].male == true)//если зояц - анти-девка
{rabbit[nm].sex = "m";} //то ставим пол м, тобиш мужской
else {rabbit[nm].sex="f";} //а иначе, зояц - девка и пол у неё ф, то биш фантастик
//теперя надо создавати кнопошку под тем же номером
rbutton[nm] = new JButton();//присвоим ей всякие кнопочные штуки
rbutton[nm].setBounds(100+(nm+1)/*плюс адин патамушта самая первая нм равна 0*/*30, 300 /*отс... ну вы поняли*/, 20, 20); //позицию кроля делоим
//шобы текстурки сделати, нужно проверить, кроль девка или нет
if(rabbit[nm].male == true) { //проверка на анти-девковость
try { //пытаемся достати текстурку
rbutton[nm].setIcon(new ImageIcon(game_ai.class.getResource("/rm.png")));
rbutton[nm].setContentAreaFilled(false);}
catch (Exception e) { //не полушется? ну значит делоем голубым
rbutton[nm].setBackground(Color.CYAN);}
}
else {//иначи если кроль девка
try {//тоже самое, но девкавая тектура
rbutton[nm].setIcon(new ImageIcon(game_ai.class.getResource("/rf.png")));
rbutton[nm].setContentAreaFilled(false);}
catch (Exception e) { //делоим розовым
rbutton[nm].setBackground(Color.PINK);}
}
rbutton[nm].setBorder(null);//ставим кнопочке прозрачные края
add(rbutton[nm]);//добавляем кнопочку в окошко
System.out.println("Кролик №"+(ct)+" вес - "+rabbit[nm].mass+", скорость - "+rabbit[nm].max_speed+" "+rabbit[nm].sex+". "); //выводим в консольку по красоте штобы было
//кроли будут двигаться? в будущем - да. нам нужен таймер? не знаю
//таймер возраста тоже нужен, чтобы кролики умерали. но куда его добавлять - не знаю
//ещё надо сделать проверку на количество кроликов
ct++;//каунтер увеличивается чтобы нада
nm++;//номер массива тоже увеличивается, потомучто нада
//щща проверим кролей на вич (шутка не бейте)
if (nm==20) {//если номер массива = 20, т.е. последняя ячейка
nm=0;//возвращаем в первую
}
}
///
public myPanel()
{
JButton rb_spawn = new JButton("Создать кроля");
rb_spawn.setBounds(40, 50, 230, 30);
rb_spawn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
spawnr(); //ета кнопошка отвеччает за спавн кролей
}});
add(rb_spawn);
setLayout(null);
}
class rabbit
{
int mass;
int max_speed;
boolean male;
int age;
String sex;
boolean alive = true;
int num;
}}