إضافة ButtonGroup إلى كائن تخطيط الصندوق
-
27-10-2019 - |
سؤال
عندما أحاول أن أضع 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 );
لا تنتمي إلى StackOverflow