سؤال

عندما أحاول أن أضع ButtonGroup اعترض على بلدي Box الكائن، يقوم المترجم بإرجاع الخطأ التالي:

لا توجد طريقة لمثل هذا النوع

الرجاء مساعدتي، كيف يمكنني إضافة بلدي ButtonGroup في المربع الأفقي؟

هل كانت مفيدة؟

المحلول

شيء من هذا القبيل:

ButtonGroup bg; // your button group
Box box; // your box
// Create a panel to group the buttons.
JPanel panel = new JPanel();
// Add all of the buttons in the group to the panel.
for (Enumeration<AbstractButton> en = buttonGroup.getElements(); en.hasMoreElements();) {
    AbstractButton b = en.nextElement();
    panel.add(b);
}
// Add the panel to the box.
box.add(panel):

نصائح أخرى

تقوم ButtonGroup بتوسيع الكائن؛إنه ليس مكونًا.لذلك لا تتم إضافته بشكل صريح إلى الحاوية أو المكون.بدلاً من ذلك، يقوم بتجميع مثيلات AbstractButton.

هنا هو رمز المثال من وثائق جافا.

إحدى ميزات عدم جعل ButtonGroup مكونًا (وربما سبب تنفيذه بهذه الطريقة) هو أنه يمكنك جعل مثيلات AbstractButton على مكونات مختلفة تكون عضوًا في نفس ButtonGroup.
فيما يلي بعض نماذج التعليمات البرمجية لتوضيح ذلك، باستخدام BoxLayout.

JPanel mainPanel = new JPanel();
mainPanel.setLayout ( new BoxLayout( mainPanel, BoxLayout.PAGE_AXIS ) );

ButtonGroup group = new ButtonGroup( );

JButton dogButton = new JButton("dog");
group.add( dogButton );
JPanel dogPanel = new JPanel( );
dogPanel.add( dogButton );
mainPanel.add( dogPanel );

JButton catButton = new JButton("cat");
group.add( catButton );
JPanel catPanel = new JPanel();
catPanel.add( catButton );
mainPanel.add( catPanel );
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top