fork download
  1. import javax.swing.*;
  2. import java.awt.event.ActionEvent;
  3. import java.awt.event.ActionListener;
  4. import java.awt.*;
  5.  
  6. // الفئة الرئيسية المطلوبة من بيئة التشغيل
  7. public class Main extends JFrame { // يجب أن يكون اسمها Main
  8.  
  9. private JTextField num1Field;
  10. private JTextField num2Field;
  11. private JLabel resultLabel;
  12.  
  13. public Main() {
  14. setTitle("تمرين (2) مقارنة رقمين");
  15. setSize(300, 180);
  16. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  17. setLayout(new FlowLayout());
  18.  
  19. // حقلين لإدخال رقمين. [cite: 10]
  20. add(new JLabel("الرقم الأول:"));
  21. num1Field = new JTextField(10);
  22. add(num1Field);
  23.  
  24. add(new JLabel("الرقم الثاني:"));
  25. num2Field = new JTextField(10);
  26. add(num2Field);
  27.  
  28. // زر "المقارنة". [cite: 11]
  29. JButton compareButton = new JButton("المقارنة");
  30. add(compareButton);
  31.  
  32. resultLabel = new JLabel("النتيجة ستظهر هنا.");
  33. add(resultLabel);
  34.  
  35. compareButton.addActionListener(new ActionListener() {
  36. @Override
  37. public void actionPerformed(ActionEvent e) {
  38. compareNumbers(); // عند الضغط [cite: 12]
  39. }
  40. });
  41.  
  42. setVisible(true);
  43. }
  44.  
  45. private void compareNumbers() {
  46. try {
  47. double num1 = Double.parseDouble(num1Field.getText());
  48. double num2 = Double.parseDouble(num2Field.getText());
  49.  
  50. if (num1 > num2) {
  51. resultLabel.setText("الرقم الأول أكبر"); // إذا كان الأول أكبر - "الرقم الأول أكبر " [cite: 13]
  52. } else if (num2 > num1) {
  53. resultLabel.setText("الرقم الثاني أكبر"); // إذا الثاني أكبر - "الرقم الثاني أكبر" [cite: 14]
  54. } else {
  55. resultLabel.setText("الرقمين متساويين"); // إذا متساويين - "الرقمين متساويين" [cite: 15]
  56. }
  57. } catch (NumberFormatException ex) {
  58. resultLabel.setText("خطأ: الرجاء إدخال أرقام صحيحة.");
  59. }
  60. }
  61.  
  62. public static void main(String[] args) {
  63. SwingUtilities.invokeLater(new Runnable() {
  64. public void run() {
  65. new Main();
  66. }
  67. });
  68. }
  69. }
Success #stdin #stdout #stderr 0.39s 67400KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
Exception in thread "AWT-EventQueue-0" java.awt.HeadlessException: 
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
	at java.desktop/java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:197)
	at java.desktop/java.awt.Window.<init>(Window.java:538)
	at java.desktop/java.awt.Frame.<init>(Frame.java:423)
	at java.desktop/java.awt.Frame.<init>(Frame.java:388)
	at java.desktop/javax.swing.JFrame.<init>(JFrame.java:180)
	at Main.<init>(Main.java:13)
	at Main$2.run(Main.java:65)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:389)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)