// Ilovaning ko'rinishini (LNF) o'rnating
// Xost tizimi nimani afzal ko'rsa, sukut bo'yicha
harakat qilib ko'ring {
UIManager . setLookAndFeel ( UIManager . getSystemLookAndFeelClassName ( ) ) ;
} catch ( ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex ) {
Logger. getLogger ( TextEdit. sinf . getName ( ) ) . log ( darajali. SEVERE , null , ex ) ;
}
// Ilova oynasi
maydonining atributlarini o'rnatish = new JTextArea ( ) ;
ramka. setDefaultCloseOperation ( JFrame . EXIT_ON_CLOSE );
ramka. qo'shish ( maydon ) ;
ramka. setSize ( 640 , 480 ) ;
ramka. setVisible ( to'g'ri ) ;
// JMenuBar menyusini
yaratish menu_main = new JMenuBar ( ) ;
JMenu menu_file = new JMenu ( "Fayl" ) ;
JMenuItem menuitem_new = new JMenuItem ( "Yangi" ) ;
JMenuItemmenuitem_open = new JMenuItem ( "Ochiq" ) ;
JMenuItem menuitem_save = yangi JMenuItem ( "Saqlash" ) ;
JMenuItem menuitem_quit = yangi JMenuItem ( "Chiqish" ) ;
menyu elementi_yangi. addActionListener ( bu ) ;
menuitem_open. addActionListener ( bu ) ;
menyu elementini_saqlash. addActionListener ( bu ) ;
menuitem_quit. addActionListener ( bu ) ;
menu_main. qo'shish ( menyu_fayl ) ;
menyu_fayl. qo'shish ( menyuitem_new ) ;
menyu_fayl. qo'shish ( menyu_ochiq ) ;
menyu_fayl. qo'shish ( menyuni_saqlash ) ;
menyu_fayl. qo'shish ( menyuitem_quit ) ;
ramka. setJMenuBar ( menyu_main ) ; }
Endi faqat menyu bandlarida tasvirlangan funksiyalarni amalga oshirish qoladi.Menyu amallarini dasturlashIlovangiz menyu tanlovlariga javob beradi, chunki sizning JFrame ilovangiz unga ActionListenerbiriktirilgan. Java-da hodisa ishlov beruvchisini qo'llaganingizda, uning o'rnatilgan funktsiyalarini "bekor qilib qo'yishingiz" kerak. Bu haqiqatdan ham jiddiyroq ko'rinadi. Siz Java-ni qayta yozmayapsiz; siz faqat aniqlangan, lekin voqea ishlovchisi tomonidan amalga oshirilmagan funksiyalarni amalga oshiryapsiz.Bunday holda, siz actionPerformedusulni bekor qilishingiz kerak. Fayl menyusidagi deyarli barcha yozuvlar fayllar bilan bog'liq bo'lganligi sababli, mening kodim JFileChooser-ni erta belgilaydi. Kodning qolgan qismi ifbayonotning bandlariga bo'lingan bo'lib, u qanday voqea qabul qilinganligini ko'radi va shunga muvofiq harakat qiladi. Har bir band bir-biridan keskin farq qiladi, chunki har bir element butunlay noyob narsani taklif qiladi. Eng o'xshashlari Ochish va Saqlashdir, chunki ikkalasi ham JFileChooser -dan ma'lumotlarni olish yoki joylashtirish uchun fayl tizimidagi nuqtani tanlash uchun foydalanadi." Yangi " tanlovi JTextArea-ni ogohlantirishsiz tozalaydi va Quit ilovani ogohlantirishsiz yopadi. Ushbu ikkala "xususiyat" ham xavflidir, shuning uchun agar siz ushbu kodni biroz yaxshilashni xohlasangiz, bu boshlash uchun yaxshi joy. Kontent saqlanmaganligi haqidagi do'stona ogohlantirish har qanday yaxshi matn muharririning muhim xususiyatidir, ammo soddalik uchun bu kelajak uchun xususiyatdir.
@Override
public void actionPerformed ( ActionEvent e ) {
String ingest = null ;
JFileChooser jfc = yangi JFileChooser ( FileSystemView . getFileSystemView ( ) . getHomeDirectory ( ) ) ;
jfc. setDialogTitle ( "Maqsadni tanlang." ) ;
jfc. setFileSelectionMode ( JFileChooser . FILES_AND_DIRECTORIES ) ;
String ae = e. getActionCommand ( ) ;
agar ( ae. teng ( "Ochish" ) ) {
returnValue = jfc. showOpenDialog ( null ) ;
agar ( returnValue == JFileChooser . APPROVE_OPTION ) {
Fayl f = yangi fayl ( jfc. getSelectedFile ( ) . getAbsolutePath ( ) ) ;
harakat qilib ko'ring {
FileReader o'qing = new FileReader ( f ) ;
Skanerni skanerlash = yangi Skaner ( o'qing ) ;
while ( scan. hasNextLine ( ) ) {
String line = scan. nextLine ( ) + " \n " ;
ingest = ingest + line ;
}
maydon. setText (yutish ) ;
}
catch ( FileNotFoundException ex ) { ex. printStackTrace ( ) ; }
}
// SAVE
} else if ( ae. equals ( "Saqlash" ) ) {
returnValue = jfc. showSaveDialog ( null ) ;
harakat qilib ko'ring {
Fayl f = yangi fayl ( jfc. getSelectedFile ( ) .getAbsolutePath ( ) ) ;
FileWriter out = new FileWriter ( f ) ;
tashqariga. yozish ( maydon. getText ( ) ) ;
tashqariga. yopish ( ) ;
} catch ( FileNotFoundException ex ) {
Komponent f = null ;
JOptionPane . showMessageDialog ( f, "Fayl topilmadi." ) ;
} catch ( IOException ex ) { F
komponenti = null ;
JOptionPane . showMessageDialog ( f, "Xato." ) ;
}
} else if ( ae. teng ( "Yangi" ) ) {
maydon. setText ( "" ) ;
} else if ( ae. teng ( "Chiqish" ) ) { Tizim . chiqish (0 ) ; }
}
}
Texnik jihatdan bu matn muharririda bor narsa shu. Albatta, hech qachon haqiqatan ham hech narsa qilinmagan va bundan tashqari, hali ham sinov va qadoqlash bosqichlari mavjud, shuning uchun etishmayotgan rekvizitlarni aniqlash uchun hali ko'p vaqt bor. Agar siz maslahatni qabul qilmasangiz: bu kodda aniq nimadir etishmayapti. Hali nima ekanligini bilasizmi? (Bu asosan Guessing Game maqolasida aytilgan .)
Do'stlaringiz bilan baham: |