Grid бул этапта өзгөчө эч нерсе кылбайт, бирок бир аз изилдөөнүн жардамы менен, угуучуларды жана логиканы кошуп, tic-tac-toe же Battleship сыяктуу татаалыраак 2D оюнун жасоого болот.
Эскертүү: Бул макала бардык мисалдар үчүн Eclipse колдонот, андыктан нерселер сиздин IDEге жараша ар кандай болушу мүмкүн. Бул сизге JCreatorдо керектүү нерсеге абдан окшош болушу керек, бирок NetBeans сыяктуу GUIге негизделген IDE үчүн негизинен пайдасыз, бирок негизинен NetBeans сүйрөө жана таштоо ыкмасынан улам.
Кадамдар
Кадам 1. Java долбоорун түзүү
Бул абдан жөнөкөй. IDE күйгүзүп, жаңы долбоор түзүңүз. Каалаган нерсеңизди чакырыңыз. Мисал buttongrid болот.
Бул ысым эч кандай мааниге ээ эмес, анткени ал бериле турган файлдын аты
Кадам 2. Негизги ыкма менен Java классын түзүңүз
Жаңы класс түзүп, ага каалаган нерсеңизди коюңуз. Мисал buttongrid болот. Eclipse колдонуучусу үчүн ачык static void main (string args) деп аталган кутучаны белгилегиңиз келет, андыктан аны баштаганда терүүнүн кажети жок болот.
Бул ысым мурункусуна караганда маанилүүрөөк, анткени ал бир эле сөз болушу керек же болбосо колдонууга жараксыз болуп калат
3 -кадам. Китепканаларды импорттоо
Бул кодду жазуу үчүн керек болгон бардык маалыматты алып келет. Сиз javax.swing. JFrame, javax.swing. JButton жана java.awt. Gridlayout импорттооңуз керек болот. Булар сабактын башталышына чейин коюлат, 1ден 3кө чейинки сызыктарда, алар турган тартиптин мааниси жок.
Кадам 4. Конструктор түзүү
Конструктор ар кандай баскыч торчолоруна ар башка маалыматка ээ болууга мүмкүндүк берген buttongrid классынын жаңы нускасын түзөт. Бардык конструкторлор классына окшош аталышы керек. Конструкторлор ага чейин эч нерсеге муктаж эмес, бирок "коомдук" көбүнчө маалымат үчүн жеңил болот. Конструкторлор көбүнчө класстагы биринчи ыкма катары жайгаштырылат, андыктан ал класстын аталышынан кийин кетет, бирок аны класстын ичинде жайгаштыруу керек. Бутонгрид конструкторуна параметрлер керек, алар конструктордун атынан кийин кашаага алынат. Бул мисалдагы параметрлер бүтүн сандар 'x' жана 'y'.
Step 5. Frame түзүү:
- Кадр аталышы керек. Бул ButtonGrid конструктордук методунан тышкары шилтеме кылынышы үчүн, сиз аны ошол методдун жанына, бирок класстын ичинде жайгаштырасыз. Көпчүлүк өзгөрмөлөр класстын жогору жагында конструктордун алдында аталат. Жаңы кадр түзүү үчүн сиз териңиз: JFrame frame = new JFrame ();
- Конструктор ыкмасынын ичинде биз бардык баскычтар тордун макетине коюлганына ынануубуз керек. Бул үчүн кадрдын макетин терүү аркылуу орнотобуз: frame.setLayout (жаңы GridLayout (x, y));
- Сөзсүз түрдө милдеттүү эмес, бирок оң жактагы жогорку бурчтагы 'x' баскычын басканыңызда кадрды жабуу үчүн, биз сапты кошушубуз керек: frame.setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE);
- Баары туура келгендей кылып кадрды туура өлчөмгө келтирүү үчүн, pack командасын иштетишибиз керек: frame.pack ();
-
Акыры кадр үчүн биз аны көрүнүктүү кылып жасашыбыз керек: frame.setVisible (true);
Кадам 6. Баскыч торун түзүү:
- Колдонуучу өз ара аракеттешкен баскычтарды жасоо керек, бирок бизге канчасы керек экенин билбегендиктен, алар биринчи аталышы керек. Ошентип, сиз түзгөн сызыктын астында, баскычтарды түзүңүз: JButton торчосу; Квадрат кашаанын эки топтому JButton торчосу эки өлчөмдүү форматта сакталат деп айтууга болот, эгерде бир эле чарчы кашаа болсо, анда ал JButtonдун линиясы болмок, ал дагы эле иштейт, бул жөн гана эки баскычтуу болгондо кайсы баскыч түзүлүп же өз ара аракеттенип жатканына шилтеме кылуу оңой.
- JButton'дордун аттары аталды, бирок дагы эле канча баскыч бар экенин айтыш керек. Конструкторго сумманы белгилеген код линиясын кошуу керек: grid = new JButton [туурасы] [узундугу];
-
Эми белгилүү бир сандагы баскычтар болоору аныкталды, алардын ар бири түзүлүшү керек. Мунун эң оңой жолу-илмек үчүн экөө, бири-х огу үчүн, бири-огу үчүн. Эки циклдин ичинде биз жаңы баскыч жасайбыз жана мисал жеңилдик үчүн текстти ар бир баскычтын ичине коет, ошондуктан биз эки өлчөмдүү массивдеги кайсы баскыч кайда экенин билебиз. Баскычты түзүү үчүн, циклдин ичине grid [x] [y] = new JButton ("("+x+","+y+")") коюу керек;
Кадам 7. Кадрга баскычтарды кошуу
Укуруктун ичинде биз баскычтарды рамкага жөнөкөй буйрук менен коюшубуз керек: frame.add (grid [x] [y]);
Step 8. ButtonGrid Instance жасаңыз
Сиздин негизги класстын түрүндө: жаңы ButtonGrid (3, 3); Эки үчөө тең 3төн 3кө чейин тор болуп саналат жана каалаган оң санды ошол жерге киргизсе болот.
Step 9. Run программасы
Муну кармоо үчүн Ctrl+F11 басыңыз
Метод 1дин 1: Кадамдар коду
Негизги класс:
коомдук класс ButtonGrid {public static void main (String args) {}}
Импорт:
javax.swing. JFrame импорттоо; javax.swing. JButton импорттоо; java.awt. GridLayout импорттоо; коомдук класс ButtonGrid {…
Конструктор коду:
коомдук класс ButtonGrid {public ButtonGrid (int width, int length) {}}…
Frame Code:
коомдук класс ButtonGrid {JFrame frame = new Jframe (); public ButtonGrid (int width, int length) {frame.setLayout (жаңы GridLayout (туурасы, узундугу))); frame.setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE); frame.pack (); frame.setVisible (чыныгы); }}…
Түймө сетка коду:
| JFrame кадры = жаңы JFrame (); // кадр JButton торун түзөт; // коомдук ButtonGrid (int width, int length) баскычтарынын торун атоодо {// constructor 2 параметрлери менен frame.setLayout (жаңы GridLayout (туурасы, узундугу))); // кадр торунун макетин коюу = жаңы JButton [туурасы] [узундугу]; // (int y = 0; y <узундугу; y ++) {үчүн (int x = 0; x <туурасы; x ++) {grid [x] [y] = жаңы JButton ("("+ x+","+y+")"); frame.add (тор [x] [y]); // баскычты торго кошот}} frame.setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE); frame.pack (); frame.setVisible (чыныгы); }…
Баскычтарды алкакка кошуу:
for (int y = 0; y <length; y ++) {for (int x = 0; x <width; x ++) {grid [x] [y] = new JButton ("("+x+","+y+")) "); frame.add (тор [x] [y]); }}…
Түймө торчонун мисалын жасоо:
public static void main (String args) {new ButtonGrid (3, 3); // 2 ButtonGridди 2 параметр менен кылат}…
Акыркы код:
javax.swing. JFrame импорттоо; // JFrame китепканасын импорттойт javax.swing. JButton; // JButton китепканасын импорттойт java.awt. GridLayout; // GridLayout китепканасынын коомдук классын ButtonGrid импорттойт {JFrame frame = new JFrame (); // кадр JButton торун түзөт; // баскычтардын торун ачык ButtonGrid (int width, int length) {// конструктор frame.setLayout (жаңы GridLayout (туурасы, узундугу))); // макет торун коюу = жаңы JButton [туурасы] [узундугу]; // (int y = 0; y <узундугу; y ++) {үчүн (int x = 0; x <туурасы; x ++) {grid [x] [y] = жаңы JButton ("("+ x+","+y+")"); // жаңы баскычтын кадрын түзөт.add (grid [x] [y]); // баскычты торго кошот}} frame.setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE); frame.pack (); // кадр үчүн ылайыктуу өлчөмдү белгилейт frame.setVisible (чыныгы); // кадрды көрүнүктүү кылат} public static void main (String args) {new ButtonGrid (3, 3); // 2 ButtonGridди 2 параметр менен кылат}}
javax.swing. JFrame импорттоо; // JFrame китепканасын импорттойт javax.swing. JButton; // JButton китепканасын импорттойт java.awt. GridLayout; // GridLayout китепканасын импорттойт
коомдук класс ButtonGrid {
JFrame кадры = жаңы JFrame (); // кадр JButton торун түзөт; // баскычтардын торун атоо
public ButtonGrid (int width, int length) {// конструктор frame.setLayout (жаңы GridLayout (туурасы, узундугу))); // макет торун коюу = жаңы JButton [туурасы] [узундугу]; // (int y = 0; y <узундугу; y ++) {үчүн (int x = 0; x <туурасы; x ++) {grid [x] [y] = жаңы JButton ("("+ x+","+y+")"); // жаңы баскычтын кадрын түзөт.add (grid [x] [y]); // баскычты торго кошот}} frame.setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE); frame.pack (); // кадр үчүн ылайыктуу өлчөмдү белгилейт frame.setVisible (чыныгы); // кадрды көрүнүктүү кылат} public static void main (String args) {new ButtonGrid (3, 3); // 2 ButtonGridди 2 параметр менен кылат}