الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

عرض ال Label باستعمال ال Html

بدأه mr.beshoy في 7 فبراير 2010 · 5 رد · 543 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

سلام للجميع

----------------

هنا فى هذه الشفيرة أعرض مجموع من ال Labels باستعمال ال Html

الشفيرة

------------

import java.awt.Color;
import java.awt.Dimension;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class MainFram extends JFrame {

    private JPanel mainPanel;
    private JButton[] buttons;
    private JLabel[] labels;
    private String[] labelNames = {"Levels", "Help", "About"};
    private String[] label = new String[labelNames.length];
    private static final int BUTTON_DISTANCE_X = 20, BUTTON_DISTANCE_Y = 20, LABELS_DISTANCE_X = 100, LABEL_DISTANCE_Y = 20;
    private static final int BUTTON_WIDTH = 50, BUTTON_HEIGHT = 50, LABEL_WIDTH = 75, LABEL_HEIGHT = 50;

    public MainFram() {
        intializingPanel();
        intializingButtons();
        intializingLabel();
        getContentPane().add(mainPanel);
    }

    public static void main(String[] args) {
        MainFram mainFram = new MainFram();
        mainFram.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        mainFram.setSize(new Dimension(600, 300));
        mainFram.setLocationRelativeTo(null);
        mainFram.setVisible(true);
        //    mainFram.setExtendedState(MAXIMIZED_BOTH);
    }

    private void intializingPanel() {
        mainPanel = new JPanel(null);
        mainPanel.setBounds(100, 10, 600, 300);
        mainPanel.setBorder(BorderFactory.createLineBorder(Color.BLACK, 5));
        mainPanel.setBackground(Color.GREEN);
    }

    private void intializingButtons() {
        buttons = new JButton[labelNames.length];
        for (int i = 0; i < labelNames.length; ++i) {
            buttons = new JButton();
            buttons.setBounds(BUTTON_DISTANCE_X, ((BUTTON_DISTANCE_Y + BUTTON_HEIGHT) * i) + BUTTON_DISTANCE_Y, BUTTON_WIDTH, BUTTON_HEIGHT);
            mainPanel.add(buttons);
        }
    }

    private void intializingLabel() {
        labels = new JLabel[labelNames.length];
        for (int i = 0; i < labelNames.length; ++i) {
            label = labelNames;
            String htmlLabel = "<html><body><h1>" + label + "</h1></body></html>";
            labels = new JLabel(htmlLabel);
            labels.setBounds(LABELS_DISTANCE_X, ((LABEL_DISTANCE_Y + LABEL_HEIGHT) * i) + LABEL_DISTANCE_Y, LABEL_WIDTH, LABEL_HEIGHT);
            mainPanel.add(labels);
        }
//        for (int i = 0; i < labelNames.length; ++i) {
//            labels = new JLabel(labelNames);
//        }

//        Box box = Box.createVerticalBox();
//        box.setBounds(100, 50, 100, 100);
//        Box.createHorizontalGlue();
//        box.add(labels[0]);
//        Box.createHorizontalGlue();
//        box.add(labels[1]);
//        Box.createHorizontalGlue();
//        box.add(labels[2]);
//        mainPanel.add(box);

    }
}

هل هناك طريقة أخرى غير استعمال ال SetBounds لعرض مثل ال GUI الذى يخرجه هذا ال code

استعملت كما ترون ال BOX "عليه comment " و لكن لم أعرف كيف أدمج ال Html معه

شكراً

تم تعديل هذه المشاركة بواسطة mr.beshoy في 7 فبراير 2010 في 20:53

#2

ما الفائدة التي ستحصل عليها من استخدام html في الشيفرة؟

أقصد لماذا تحتاج القيام بهكذا شيء

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#3

لو حضرتك لاحظت عندما أضيف ال labels دون استعمال ال وسم <h1> تظهر ال Label صغيرة على نقيض استعمال الوسم ..

و لكن سوالى : هل من طريقة أخرى باستعمال ال layout manger و يخرج ال Output كما فى الصورة

انا مستعمل ال BOX ممكن تشوفها بس بيكون شكل ال interface وحش

شكرا مستر علاء

تم تعديل هذه المشاركة بواسطة mr.beshoy في 8 فبراير 2010 في 04:00

#4

الصوة المرفقة

post-166855-12655907748348_thumb.jpg

#5

mr.beshoy

بالرغم من أن ما تقوم به ممكن، لكن لا أنصح به، بل الأفضل استخدام الطريقة القياسية في swing لتغيير نوع الخط وحجمه كما يلي :

jLabel1.setFont(new Font("Arial", Font.BOLD, 22));

أما بالنسبة لاستخدام الـ LayoutManager في رصف العناصر، فاختيارك هذا يعتمد على السلوك الذي يجب أن يسلكه المكون عند تغيير حجم النافذة:

هذا مثال (قمت باختصار الكود قليلاً !!):

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridLayout;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

public class MainFram extends JFrame {

    private JPanel mainPanel = new JPanel();
    private JPanel BandLPanel = new JPanel();
    private JPanel buttonsPanel = new JPanel();
    private JPanel lablesPanel = new JPanel();
    private String[] labelNames = {"Levels", "Help", "About"};
    private JButton[] buttons = new JButton[labelNames.length];
    private JLabel[] labels = new JLabel[labelNames.length];

    public MainFram() {
        BandLPanel.setLayout(new BorderLayout(20,20));
        buttonsPanel.setLayout(new GridLayout(3,1,20,20));
        lablesPanel.setLayout(new GridLayout(3,1,20,20));

        BandLPanel.setBackground(Color.GREEN);
        lablesPanel.setBackground(Color.GREEN);
        buttonsPanel.setBackground(Color.GREEN);

        buttonsPanel.setPreferredSize(new Dimension(50, 50));

        for (int i = 0; i < labelNames.length; i++) {
            buttons = new JButton();
            buttonsPanel.add(buttons);

            labels = new JLabel();
            labels.setText(labelNames);
            labels.setFont(new Font("Arial", Font.BOLD, 22));
            lablesPanel.add(labels);
        }
        BandLPanel.add(buttonsPanel, BorderLayout.WEST);
        BandLPanel.add(lablesPanel, BorderLayout.CENTER);
        BandLPanel.setBorder(new EmptyBorder(20, 20, 20, 20));

        mainPanel.setLayout(new BorderLayout());
        mainPanel.setBorder(BorderFactory.createLineBorder(Color.BLACK, 5));
        mainPanel.add(BandLPanel);

        getContentPane().add(mainPanel, BorderLayout.CENTER);
    }

    public static void main(String[] args) {
        MainFram mainFram = new MainFram();
        mainFram.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        mainFram.setSize(new Dimension(600, 300));
        mainFram.setLocationRelativeTo(null);
        mainFram.setVisible(true);
    }
}
#6

فعلاً كلامك مظبوط ... ليَّ فترة طويلة استعمل ال Null layout مع ال setBounds

فا تشوشت لما كتبت ب Layot Manger أخرى .غير أنى لسة طالع من فترة امتحانات ترم أول فا مخى ماسح شوية ....بس حالاً ينشط

---------------------------------------------

على أى حال تعدلت الأمور مرة أخرى

شكراً جزيلاُ لتعبكم

تم تعديل هذه المشاركة بواسطة mr.beshoy في 8 فبراير 2010 في 17:33

مواضيع مشابهة