هنا توجد بانل اسمها mainComponentPanel عليها
componentPanel & typePanel
المشكلة انى عاوز البانل typePanel
تكون تحت البانل componentPanel
هى تظهر صغيرة جدا جدا
أريدها تظهر بطول مناسب و عرض مناسب
و الهدف منها عندما اضغط على زرار الخط تظهر هذه البانل بها 3 انواع من الخطوط رفيع - سميك - سميك جدا
كما فى برنامج الرسام بتاع الوندوز
و جربت استعمل ال Box
لكن ما نفع الأمر
الكود هذا الإنترفيس فقط
--------------------------
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MainPainter {
private static final Dimension App_Dimension = new Dimension(600, 300);
private JPanel mainPanel,mainComponentPanel,componentPanel,typePanel;
private String[] buttonNames = {"line", "rect", "oval", "polygon", "eraser"};
private JButton[] buttons;
private String[] imageNames = {"line.png", "rect.png", "oval.png", "connected.png", "erase.png"};
private ImageIcon[] imageIcons;
// private ShapetTest drawPanel;
public MainPainter() {
intializePanels();
intializeButtons();
intializationIcons();
new ShapetTest();
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.getContentPane().add(new MainPainter().getComponent());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(App_Dimension);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
}
private void intializePanels() {
mainPanel = new JPanel(new BorderLayout());
mainComponentPanel = new JPanel(new GridLayout(2, 1));
mainComponentPanel.setBackground(Color.BLUE);
mainComponentPanel.setPreferredSize(new Dimension(200, 100));
componentPanel = new JPanel(new GridLayout(3,2));
componentPanel.setBackground(Color.GREEN);
// drawPanel = new ShapetTest();
// drawPanel.setShapeTestEnum(ShapeTestEnum.LINE);
// drawPanel.drawPanelColor();
typePanel = new JPanel();
typePanel.setBorder(BorderFactory.createEtchedBorder());
typePanel.setBounds(10, 50, 50, 50);
mainComponentPanel.add(typePanel);
// mainPanel.add(drawPanel, BorderLayout.CENTER);
}
private void intializationIcons() {
imageIcons = new ImageIcon[imageNames.length];
for (int i = 0; i < imageNames.length; ++i) {
imageIcons = new ImageIcon(getClass().getResource(imageNames));
}
}
private void intializeButtons() {
intializationIcons();
MyActionListener myActionListener = new MyActionListener();
buttons = new JButton[buttonNames.length];
for (int i = 0; i < buttonNames.length; ++i) {
buttons = new JButton(buttonNames);
buttons.setToolTipText(buttonNames);
buttons.addActionListener(myActionListener);
componentPanel.add(buttons);
mainComponentPanel.add(componentPanel);
}
mainPanel.add(mainComponentPanel, BorderLayout.WEST);
}
public JComponent getComponent() {
return mainPanel;
}
class MyActionListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == buttons[0]) {
// drawPanel.setShapeTestEnum(ShapeTestEnum.LINE);
}
if (e.getSource() == buttons[2]) {
// drawPanel.setShapeTestEnum(ShapeTestEnum.OVAL);
}
}
}
}شكراً
