سؤال

هنا هو الرمز:

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

public class TestGrid {

    public static void main(String[] args) {
        JFrame frame = new JFrame("Colored Trails");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

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

        JPanel panel = new JPanel();
        panel.setLayout(new GridLayout(4, 9));
        panel.setMaximumSize(new Dimension(9*30-20,4*30));

        JButton btn;
        for (int i=1; i<=4; i++) {
            for (int j=1; j<=4; j++) {
                btn = new JButton();
                btn.setPreferredSize(new Dimension(30, 30));
                panel.add(btn);
            }

            btn = new JButton();
            btn.setPreferredSize(new Dimension(30, 10));
            panel.add(btn);

            for (int j=1; j<=4; j++) {
                btn = new JButton();
                btn.setPreferredSize(new Dimension(30, 30));
                panel.add(btn);
            }

        }
        mainPanel.add(panel);
        frame.add(mainPanel);

        frame.setSize(450,950);
        frame.setVisible(true);
    }
}

أفترض أن يكون لديك جدول من الأزرار مع 4 صفوف و 9 أعمدة. ويجب أن يكون العمود الأوسط أضيق ذلك الأعمدة الأخرى. حاولت Dimension(30, 10) و Dimension(30, 10) كلاهما ليس له تأثير على عرض العمود الأوسط. لماذا ا؟

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

المحلول

مديرو التخطيط أحرار في تجاهل الحجم المفضل. خاصة، GridLayout ستجعل دائمًا كل خلية في الشبكة بنفس الحجم تمامًا (إنها مدير تخطيط عديمة الفائدة لهذا السبب).

سيكون عليك استخدام مدير تخطيط مختلف ، مثل المتداخلة BoxLayout أو أ GroupLayout.

نصائح أخرى

لاستخدام ألوان الويب المضيف، ستحتاج إلى تحميل ورقة نمط الويب المضيف بشكل حيوي مع بعض JavaScript.إذا كنت تستخدم JQuery في الصفحة، فيمكنك استخدام كتلة جافا سكريبت التالية لحقن ورقة نمط الويب المضيف على صفحتك. giveacodicetagpre.

إذا كان هذا لا يعمل، يمكنك أيضا التحقق من مقالة Microsoft كيفية: استخدام ورقة نمط موقع SharePoint في تطبيقات SharePoint مثال لا يتطلب jQuery.

setPreferredSize لن يغير حجم الزر حتى يتم تعيين البعد باستخدام البعد.

مثال:-

Dimension dim = new Dimension(20,20), then use setPerferredSize(dim).

لقد وجدت إصدار الطريقة هذا ، الذي يناسب الحل الخاص بك:

.addComponent(<<a jButton instance>>, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, <<put here an integer to set you max width button size>>)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top