السلام عليكم .
لو سمحتم كيف أستطيع أن أعمل ربط بين ال Frames. بمعنى أخر: أريد الإنتقال إلىframe آخر عند الضغط على أحد الـ Buttons في ذلك ال frame.
<_<
السلام عليكم .
لو سمحتم كيف أستطيع أن أعمل ربط بين ال Frames. بمعنى أخر: أريد الإنتقال إلىframe آخر عند الضغط على أحد الـ Buttons في ذلك ال frame.
<_<
السلام عليكم ورحمة الله وبركاته
الحل هو انك تنشئي اوبجكت من الفريم الفرعي في الاكشن ليسنر لزر في الفريم الاساسي هكذا :
Button. addActionListener(
new ActionListener() {
public void actionPerformed( ActionEvent event )
{
frame1 application = new frame1();
}
}
);
ولو تلاحظين هي نفس العبارة اللي نستخدمها في main اي كلاس تريدي تشغيله
السلام عليكم ورحمة الله وبركاته
الحل هو انك تنشئي اوبجكت من الفريم الفرعي في الاكشن ليسنر لزر في الفريم الاساسي هكذا :
Button. addActionListener(
new ActionListener() {
public void actionPerformed( ActionEvent event )
{
frame1 application = new frame1();
}
}
);ولو تلاحظين هي نفس العبارة اللي نستخدمها في main اي كلاس تريدي تشغيله
السلام عليكم
بامكانك استخدام 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);
}
}
}والسلام
زورو موقعنا
شكرا لك أخي أكرم على هذا المثال وان شاء يفيدني وطبعا إذا صعب علي شيء فيه راح أسألك.
شكرا جزيلا :D
هل من الضروري أن لا يكون في الframeالثاني main
لأن طريقة الأخت تالا لم تعمل فالخطأ دائما في
frame1 application = new frame1();
ليس من الضروري أن يكون 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);لا إله إلا الله العظيم الحليم,لا إله إلا الله رب العرش العظيم,لا إله إلا الله رب السموات ورب الأرض ورب العرش الكريم.
هذا برنامج بسيط عملته للتجربة ولكن تظهر الأخطاء في السطور التالية:
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();
الخطأ يقول أنك لم تقم بتنفيذ actionPerformed() ،، وفعلا أنت نفذت طريقة أخرى وهي ActionPerformed ، فرق a و A!!!
أسماء الفئات فقط هي التي تبدأ بحرف كبير. مثل String MyFrame وليس doab!!! ويفضل أن يكون له معنى!!
أسماء الطرق والمتغيرات والحزم تبدأ بالصغير! total numberOfStudents java.lang
أسماء الثوابت حروفها كبيرة كلها! BoarderLayout.NORTH
صفحاتي: صفحة حسام الملحم www.hussam.ws مدونة
آخر المشاريع: مشروع لغة برمجة عربية شيئية التوجه
ألعاب على الجوال : 1-(لعبة O X على الجوال ) 2-(لعبة الرقم السري على الجوال ) 3-(لعبة آخر حبة على الجوال )
ألعاب على الحاسب: لعبة الوزراء الثمان ، لعبة شطرنج ، لعبة التركيب Tetris
مواضيعي:
الفرق الجذري بين الجافا و C# شرح التعامل مع WTK لبرمجة الجوالات
مشاركاتي:
برنامج (كاتب) للكاتب فهد OMLX، برنامج (المحول) للكاتب فهد OMLX، برنامج (Unit Storm) للكاتب بشير C&Dell، أيهما أكبر الأعداد الصحيحة أم الطبيعية للكاتب Romanof، سؤال رياضي بحت للكاتب VB6-Rocket، التحدي الكبير للكاتب ANSI،
السلام عليكم ورحمة الله و بركاته
الموضوع فى غاية البساطة و لكن اتبع التالى
اذا كنت من مستخدمى ال 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);
والله الموفق
:)
اقترب للناس حســــابهم و هم فى غفلة معرضون
بسم الله الرحمن الرحيم
لا إله إلا الله محمد رسول الله
أخي العزيز اليك بعض الصيانة على الكود الذي قمت بكتابته[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);
}
}
هذا الموضوع مغلق.