مشکل در انجام محاسبات ریاضی در بخش رابط گرافیکی Netbeans (GUI)

با سلام و خسته نباشید

من همونطوری که در بخش رابط گرافیکی نت بینز یک مشکلی دارم، من JFRAME رو ایجاد کردم حالا میخوام 5 تا متغیر معرفی کنم که به صورت زیر باشند

X1 - (X2*X3*X4) +X5

برای هر متغیر یک text field قرار دادم ولی نمیدونم باید چیکار کنم تا محاسبۀ فوق رو برام انجام بده، یعنی میخوام وقتی برنامه اجرا میشه، به جای متغیرهای بالا از کاربر عدد بگیره و به محاسبۀ بالا رو انجام بده و جواب رو جلوی رابطه بالا نشون بده (البته به صورت گرافیکی و استفاده از Swing و jframe). چطوری میتونم اینکارو بکنم؟

با تشکر

پاسخ ها

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

با سلام

برای توضیحات بیشتر، لینک زیر رو قرار میدم، در واقع یه چیزی تو مایه های آموزش زیر میخوام با این تفاوت که محاسبات فوق رو انجام بده و نیازی هم به لیبل نداشته باشه و تنها لیبل مورد نیاز برای جواب حاصل از محاسبات فوق باشه.

https://www.sokanacademy.com/categories/programming/java/tutorials/332/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%86%D8%AD%D9%88%D9%87-%DB%8C-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-TextField-%D9%87%D8%A7-%D8%AF%D8%B1-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-%D9%86%D8%AA-%D8%A8%DB%8C%D9%86%D8%B2

اگر هم لازم به توضیحات بیشتر است، براتون عکس بزارم.

ممنون

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

https://www.sokanacademy.com/images/tutorials/9efd5123733476ed31a9ed6df5586417.jpg

سلام عکس بالا را ببین

اولین کاری که می کنیم این است که سه متغیر از جنس عدد اعشاری double تعریف می کنیم یکی تحت عنوان numberOne که مرتبط با فیلد First Number خواهد بود، یکی تحت عنوان numberTwo که مرتبط با فیلد Second Number خواهد بود و یکی هم تحت عنوان numberResult که مرتبط با فیلد Result خواهد بود.

 

حال نیاز است تا با استفاده از کلاس Double و متدهای مرتبط با آن String ها را به عدد اعشاری تبدیل کنیم. برای این منظور کد خود را به صورت زیر تکمیل می کنیم:

https://www.sokanacademy.com/images/tutorials/f65485c404014763261b0a07970228c6.jpg

همانطور که می بینیم ابتدا نام متغیر numberOne را نوشته و یک علامت مساوی مقابل آن قرار می دهیم. حال از آنجا که می خواهیم محتویات jTextField1 را به یک عدد اعشاری تبدیل کنیم می بایست از کلاس Double جاوا استفاده کرده و متد parseDouble را به آن ضمیمه کنیم. کاری که این کلاس و متد انجام می دهند این است که String یی که به آن اختصاص داده شود را به یک عدد اعشاری تبدیل می کنند. در ادامه می بایست داخل پرانتز مرتبط با متد parseDouble نام فیلد مربوطه را نوشته سپس متد getText() را به آن ضمیمه کنیم. کاری که این متد انجام می دهد این است که متن داخل TextField را می گیرد.

 

همین مراحل را برای فیلد مرتبط با Second Number هم انجام می دهیم. از این پس مقادیر متغیرهای numberOne و numberTwo اعدادی اعشاری خواهد بود که توسط کاربر وارد فیلدهای نرم افزار می شوند.

 

در ادامه می بایست مقادیر متغیرهای numberOne و numberTwo را با یکدیگر جمع نموده و در متغیری تحت عنوان numberResult ذخیره سازیم. برای این منظور کد فوق را به صورت زیر تکمیل می کنیم:

https://www.sokanacademy.com/images/tutorials/2deff02ce3d81c76f7fa10fd10bbc987.jpg

حال می بایست مقدار به دست آمده را به فیلد مرتبط با Result اختصاص دهیم اما این در حالی است که ابتدا می بایست این متغیر اعشاری را به یک String تبدیل کنیم. برای این منظور کد فوق را به صورت زیر تکمیل می کنیم:

 

خوب دیگه جوابش مشخصه

پنجتا متغیر تعریف کن بعد همه ان ها را طبق خواسته ات محاسبه کن داخل result بریز و بعد پرینت...

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

سلام

ممنون از پاسختون

درست شد خیلی لطف کردید

حالا یه سوال دیگه دارم، چطوری میتونم 2 تا تب بزارم که یکی از تب ها مربوط به همین برنامه بالا باشه و تب دوم مربوط به یه برنامه دیگه باشه؟ یعنی میخوام وقتی کاربر خواست برنامه دوم رو اجرا کنه به تب دو بره و اونجا برنامه دوم رو اجرا کنه؟

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

سلام ببخشید دیر شد

برای شروع می تونید از این سورس استفاده کنید

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
 
public class TabbedPane extends JFrame {
     
    public TabbedPane() {
         
        setTitle("Tabbed Pane");
        JTabbedPane jtp = new JTabbedPane();
        getContentPane().add(jtp);
        JPanel jp1 = new JPanel();
        JPanel jp2 = new JPanel();
        JLabel label1 = new JLabel();
        label1.setText("You are in area of Tab1");
        JLabel label2 = new JLabel();
        label2.setText("You are in area of Tab2");
        jp1.add(label1);
        jp2.add(label2);
        jtp.addTab("Tab1", jp1);
        jtp.addTab("Tab2", jp2);
         
    }
    public static void main(String[] args) {
         
        TabbedPane tp = new TabbedPane();
        tp.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        tp.setVisible(true);
         
    }
}

اطلاعات بیشتر

http://www.java-tips.org/java-se-tips-100019/15-javax-swing/1752-how-to-make-tabbed-pane-using-swing.html

online-support-icon