الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف أربط؟

مغلق
بدأه النغم الخجول في 11 مايو 2005 · 11 رد · 1,167 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم .

لو سمحتم كيف أستطيع أن أعمل ربط بين ال Frames. بمعنى أخر: أريد الإنتقال إلىframe آخر عند الضغط على أحد الـ Buttons في ذلك ال frame.

<_<

النغم الخجول

14_07_06_10_56_13_1152942973_6__4__6__1_5__56_1144313576165_8_-6.jpg

#2

السلام عليكم ورحمة الله وبركاته

الحل هو انك تنشئي اوبجكت من الفريم الفرعي في الاكشن ليسنر لزر في الفريم الاساسي هكذا :

Button. addActionListener(

new ActionListener() {

public void actionPerformed( ActionEvent event )

{

frame1 application = new frame1();

}

}

);

ولو تلاحظين هي نفس العبارة اللي نستخدمها في main اي كلاس تريدي تشغيله

#3

السلام عليكم ورحمة الله وبركاته

الحل هو انك تنشئي اوبجكت من الفريم الفرعي في الاكشن ليسنر لزر في الفريم الاساسي هكذا :

Button. addActionListener(
        new ActionListener() {
         public void actionPerformed( ActionEvent event )
             {
               frame1 application = new frame1();
             }
          } 
        );

ولو تلاحظين هي نفس العبارة اللي نستخدمها في main اي كلاس تريدي تشغيله

#4

تسلميلي أخت تالا انتي الوحيد اللي تردي على أسألتي.

شكرا لك.

شكرا

شكرا

شكرا :D ;)

النغم الخجول

14_07_06_10_56_13_1152942973_6__4__6__1_5__56_1144313576165_8_-6.jpg

#5

السلام عليكم

بامكانك استخدام CardLayout

او اليك هذا المثال الذي قد يفيدك

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Frame1 extends JFrame {

  //create the UI container
  JPanel contentPane;

  //create menu bar and menu bar items
  JMenuBar menuBar1 = new JMenuBar();
  JMenu menuFile = new JMenu();
  JMenuItem menuFileExit = new JMenuItem();
  JMenu jMenu1 = new JMenu();
  JCheckBoxMenuItem menuToggleState = new JCheckBoxMenuItem();
  JCheckBoxMenuItem menuToggleReadOnly = new JCheckBoxMenuItem();

  //create panel for checkboxes
  JPanel jPanel1 = new JPanel();
  JCheckBox jCheckBox1 = new JCheckBox();
  JCheckBox jCheckBox2 = new JCheckBox();

  //create table
  String[] columnNames = {"Attribute", "Value"};
  Object[] [] dataTable = { {"State", "False"},
                            {"Read Only", "False"},
                            {" ", " "},
                            {" ", " "},
                            {" ", " "},
                            {" ", " "},
                            {" ", " "},
                            {" ", " "},
                           };
  JTable jTable1 = new JTable(dataTable, columnNames);
  JScrollPane scrollPane1 = new JScrollPane();


  /**
   * Construct the frame
   */
  public Frame1() {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }

  /**
   * Component initialization
   *
   * @throws Exception exception
   */
  private void jbInit() throws Exception  {

    //initialize content pane
    contentPane = (JPanel) this.getContentPane();
    contentPane.setLayout(null);
    this.setSize(new Dimension(448, 211));
    this.setTitle("CheckBoxControl Sample");

    //initialize menu items and create events
    menuFile.setText("File");
    menuFileExit.setText("Exit");
    menuFileExit.addActionListener(new ActionListener()  {
      public void actionPerformed(ActionEvent e) {
        fileExit_actionPerformed(e);
      }
    });
    jMenu1.setText("Toggle");
    menuToggleState.setText("State");
    menuToggleState.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        menuToggleState_actionPerformed(e);
      }
    });
    menuToggleReadOnly.setText("Read Only");
    menuToggleReadOnly.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        menuToggleReadOnly_actionPerformed(e);
      }
    });

    //initialize panel and checkboxes and set up events
    jPanel1.setBorder(BorderFactory.createRaisedBevelBorder());
    jPanel1.setBounds(new Rectangle(22, 12, 140, 129));
    jCheckBox1.setPreferredSize(new Dimension(120, 25));
    jCheckBox1.setText("State toggle");
    jCheckBox1.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jCheckBox1_actionPerformed(e);
      }
    });
    jCheckBox2.setPreferredSize(new Dimension(120, 25));
    jCheckBox2.setText("Read Only toggle");
    jCheckBox2.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jCheckBox2_actionPerformed(e);
      }
    });

    //initialize table
    jTable1.setBackground(Color.white);
    jTable1.setBorder(BorderFactory.createEtchedBorder());
    jTable1.setGridColor(Color.black);
    jTable1.setPreferredScrollableViewportSize(new Dimension(250, 70));
    scrollPane1.setBorder(null);
    scrollPane1.setBounds(new Rectangle(166, 12, 268, 130));
    scrollPane1.getViewport().setBounds(new Rectangle(166, 12, 268, 400));
    scrollPane1.getViewport().add(jTable1);

    //add components
    this.setJMenuBar(menuBar1);
    menuFile.add(menuFileExit);
    menuBar1.add(menuFile);
    menuBar1.add(jMenu1);
    jMenu1.add(menuToggleState);
    jMenu1.add(menuToggleReadOnly);
    contentPane.add(jPanel1, null);
    jPanel1.add(jCheckBox1, null);
    jPanel1.add(jCheckBox2, null);

    contentPane.add(scrollPane1, null);
 }

  /**
   * Overridden so we can exit when window is closed
   *
   * @param e WindowEvent
   */
  protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
      fileExit_actionPerformed(null);
    }
  }

  /**
   * Checkbox - State action performed
   *
   * @param e ActionEvent
   */
  void jCheckBox1_actionPerformed(ActionEvent e) {
      if (jCheckBox1.isSelected()) {
        jTable1.setValueAt("True", 0, 1);
        menuToggleState.setSelected(true);
      }
      else  {
        jTable1.setValueAt("False", 0, 1);
        menuToggleState.setSelected(false);
      }
  }

  /**
   * Checkbox - read only action performed
   *
   * @param e ActionEvent
   */
  void jCheckBox2_actionPerformed(ActionEvent e) {
      if (jCheckBox2.isSelected()) {
        jTable1.setValueAt("True", 1, 1);
        menuToggleReadOnly.setSelected(true);
      }
      else  {
        jTable1.setValueAt("False", 1, 1);
        menuToggleReadOnly.setSelected(false);
      }
  }

  /**
   * File | Exit action performed
   *
   * @param e ActionEvent
   */
  public void fileExit_actionPerformed(ActionEvent e) {
    System.exit(0);
  }

  /**
   * Toggle | State action performed
   *
   * @param e ActionEvent
   */
  void menuToggleState_actionPerformed(ActionEvent e) {
      if (menuToggleState.getState()) {
        jTable1.setValueAt("True", 0, 1);
        jCheckBox1.setSelected(true);
      }
      else  {
        jTable1.setValueAt("False", 0, 1);
        jCheckBox1.setSelected(false);
      }
  }

  /**
   * Toggle | Read Only action performed
   *
   * @param e ActionEvent
   */
  void menuToggleReadOnly_actionPerformed(ActionEvent e) {
      if (menuToggleReadOnly.isSelected()) {
        jTable1.setValueAt("True", 1, 1);
        jCheckBox2.setSelected(true);
      }
      else  {
        jTable1.setValueAt("False", 1, 1);
        jCheckBox2.setSelected(false);
      }
  }
}

والسلام

زورو موقعنا

www.algabal.com

#6

شكرا لك أخي أكرم على هذا المثال وان شاء يفيدني وطبعا إذا صعب علي شيء فيه راح أسألك.

شكرا جزيلا :D

النغم الخجول

14_07_06_10_56_13_1152942973_6__4__6__1_5__56_1144313576165_8_-6.jpg

#7

هل من الضروري أن لا يكون في الframeالثاني main

لأن طريقة الأخت تالا لم تعمل فالخطأ دائما في

              frame1 application = new frame1();

النغم الخجول

14_07_06_10_56_13_1152942973_6__4__6__1_5__56_1144313576165_8_-6.jpg

#8

ليس من الضروري أن يكون main في الفريم الثاني لكن يجب كتابة ما يلي بعد إنشاء الأوبجكت عن الفريم الثاني ووضعه بحدث الزر ActionPerformed

frame1 application = new frame1();
application.show();
this.hide();

وإن كنت تريدين الفريم الثاني أن يظهر بوسط الشاشة يجب كتابة ما يلي بعد إنشاء الأوبجكت طبعا وقبل استدعاء ما سبق

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
       Dimension frameSize = application.getSize();
       if (frameSize.height > screenSize.height) {
           frameSize.height = screenSize.height;
       }
       if (frameSize.width > screenSize.width) {
           frameSize.width = screenSize.width;
       }
       application.setLocation((screenSize.width - frameSize.width) / 2,
                         (screenSize.height - frameSize.height) / 2);

لا إله إلا الله العظيم الحليم,لا إله إلا الله رب العرش العظيم,لا إله إلا الله رب السموات ورب الأرض ورب العرش الكريم.

#9

هذا برنامج بسيط عملته للتجربة ولكن تظهر الأخطاء في السطور التالية:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class doub extends JFrame{
public doub(){
super("Welcome To This page");
setSize(200,200);
setVisible(true);
final JButton b1=new JButton("Click here to go to next Frame");
b1.addActionListener( new ActionListener(){

public void ActionPerformed(ActionEvent event)
    {
               if (event.getSource()==b1)
            {obj2 b2=new obj2();
            b2.show();
    //this.hide();
    }
    }});
    }


	public static void main(String args[]){
  doub b=new doub();}
}

class obj2 extends JFrame{
public obj2(){
super("Welcome To My page");
setSize(200,200);
setVisible(true);
JButton b1=new JButton("Click here to go to next Frame");
}}

والخطأ يشيرإلى السطر الذي يحتوي على الأمر:

public void ActionPerformed(ActionEvent event)

يقول الخطأ

<anonymous doub$1>should be declared abstract; it does not define actionPerformed(java.awt.event.ActionEvent) in

وعند تفعيل:

this.hide();

يظهر الخطأ:

Symbol: method hide ()
  this.hide();

النغم الخجول

14_07_06_10_56_13_1152942973_6__4__6__1_5__56_1144313576165_8_-6.jpg

#10

الخطأ يقول أنك لم تقم بتنفيذ actionPerformed() ،، وفعلا أنت نفذت طريقة أخرى وهي ActionPerformed ، فرق a و A!!!

أسماء الفئات فقط هي التي تبدأ بحرف كبير. مثل String MyFrame وليس doab!!! ويفضل أن يكون له معنى!!

أسماء الطرق والمتغيرات والحزم تبدأ بالصغير! total numberOfStudents java.lang

أسماء الثوابت حروفها كبيرة كلها! BoarderLayout.NORTH

#11

السلام عليكم ورحمة الله و بركاته

الموضوع فى غاية البساطة و لكن اتبع التالى

اذا كنت من مستخدمى ال jbuilder

قم بعمل ال فرام التى تريد الأنتقال منها الى الفرام الاخرى و لتكن اسمها

main frame ثم

go to the design mode

قم بوضع ال button الذى تريد الأنتقال منه للفرام الجديدة

قم بعمل دبل كلك عى ال button و انت فى ال design ,و ذلك لاضافى الأكش له

سوف تجد نفسك داخ ال source code داخل الأكشن بتاع ال button

قم بكتابة التالى داخل الأكشن بالترتيب

Frame opendframe = new Frame(); 1.

opendframe .setsize(300,400); 2

opendfarme .setvisible (true);

والله الموفق

:)

اقترب للناس حســــابهم و هم فى غفلة معرضون

#12

بسم الله الرحمن الرحيم

لا إله إلا الله محمد رسول الله

أخي العزيز اليك بعض الصيانة على الكود الذي قمت بكتابته[COLOR=green]//////////////////////////////////////////////////////////////////////////////////////////////////import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class doub extends JFrame

{

JButton b1=new JButton("Click here to go to next Frame");

Container c=getContentPane();

public doub()

{

super("Welcome To This page");

c.setLayout(new FlowLayout());

b1.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

obj2 b2=new obj2();

b2.show();

obj3 b3=new obj3();

b3.show();

}

}

);

c.add(b1);

setSize(200,200);

setVisible(true);

}

///////////////////////////////////////////////Static/////////////

public static void main(String args[])

{

doub b=new doub();

}

} ///End class

//////////////////////////////////////other Frame/////////////////////

class obj2 extends JFrame{

public obj2(){

super("Welcome To My page");

setSize(200,200);

setVisible(true);

}

}

////////////////////////////////////////////////////////////////////////////////////////////////

class obj3 extends JFrame{

Container c=getContentPane();

JLabel j;

public obj3(){

super("My name is Mohamed");

c.setLayout(new FlowLayout());

j=new JLabel("Hell");

c.add(j);

setSize(200,200);

setVisible(true);

}

}

هذا الموضوع مغلق.

مواضيع مشابهة