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

تعرف على مدخلات الدوال System.getProperty و System.getenv

بدأه Mahmoud Kelany في 19 نوفمبر 2010 · 25 رد · 1,618 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمه الله وبركاته

اقدم لكم اليوم درس

عن المدخلات التى تأخذها كلا من الدوال

System.getProperty(StringValue);

System.getenv(StringValue);

كثير منا وانا اولكم كنت اجهل هذه المدخلات

لكن فى برنامجى الحالى اردت استخدام احداهما

ولكنى كنت لا اعلم

فبحثت كثيرا ولكن لم اجد نتيجه من بحثى

لكن توصلت بفضل الله الى ان هذه الدوال

System.getProperties();
System.getenv();

تعود بكل القيم التى بداخلها وهى عباره عن key و Value

كل مفتاح مقابل له قيمه

المفتاح ثابت لكن القيمه متخلفه من نظام تشغيل لاخر

وتمكنت من عمل برنامج صغير يعرض كل تلك الخصائص فى جدول بسيط

وهذا هو الكود الخاص بذلك

import java.awt.*;
import java.util.*;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author Mahmoud Kelany
 */
public class SystemParamters extends JFrame {

	private JTable outputTable = new JTable();
	private JScrollPane scrollPane = new JScrollPane(outputTable);
	private JButton envButton = new JButton("Env");
	private JButton propertyButton = new JButton("Property");
	/////////////
	private Properties p = System.getProperties();
	private Object[] pKeys = p.keySet().toArray();
	/////

	private Map<String, String> env = System.getenv();
	private Object[] nKeys = env.keySet().toArray();

	public SystemParamters() {
    	super("System Properties & Environment values");
    	JPanel buttonPanel = new JPanel();
    	buttonPanel.add(envButton);
    	buttonPanel.add(propertyButton);
    	add(scrollPane);
    	add(buttonPanel, BorderLayout.SOUTH);
    	makeEnvTable(nKeys.length);
    	/////////////////
    	envButton.addActionListener(new ActionListener() {

        	public void actionPerformed(ActionEvent e) {
            	makeEnvTable(nKeys.length);
        	}
    	});
    	propertyButton.addActionListener(new ActionListener() {

        	public void actionPerformed(ActionEvent e) {
            	makePropertyTable(pKeys.length);
        	}
    	});
	}

	private void makePropertyTable(int length) {
    	Object tableArr[][] = new Object[length][2];
    	for (int i = 0; i < length; i++) {
        	Object[] rows = new Object[2];
        	rows[0] = pKeys.toString();
        	rows[1] = p.getProperty((String) pKeys);
        	tableArr = rows;
    	}
    	outputTable.setModel(new DefaultTableModel(tableArr, new String[]{"Properties Key", "Out Value"}));
    	outputTable.setFont(new Font("tohma", Font.BOLD, 14));
	}

	private void makeEnvTable(int length) {
    	Object tableArr[][] = new Object[length][2];
    	for (int i = 0; i < length; i++) {
        	Object[] rows = new Object[2];
        	rows[0] = nKeys.toString();
        	rows[1] = env.get(nKeys.toString());
        	tableArr = rows;
    	}
    	outputTable.setModel(new DefaultTableModel(tableArr, new String[]{"Environment Key", "Out Value"}));
    	outputTable.setFont(new Font("tohma", Font.BOLD, 14));
	}

	public static void main(String[] args) {
    	SystemParamters f = new SystemParamters();
    	f.setSize(800, 800);
    	f.setLocationRelativeTo(null);
    	f.setExtendedState(JFrame.MAXIMIZED_BOTH);
    	f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	f.setVisible(true);
	}
}

ولتجربه بدون اطلاع ع الكود

System_Paramters.jar

اتمنى ان اكون قد افدتكم ولو بالقليل

بالتوفيق :)

3

Software Developer
Mahmoudkelany.com


 

#2

مآشآء الله أخوي محمد...

شغل رآئع ومرتب..

جزآك الله ألف خير:)

زادك الله من علمه :)

1

You CAN

#3

بارك الله فيك .. موضوع جيد دوال هامه +1

لكن انا ممكن استخدم خواص النظام فى حاجات زى ايه ؟؟؟

no-pain-no-gain.jpg

اذا كنت لا تعلم الى اين تذهب... فكــل الطرق تؤدى الى هناك

#4

بالمناسبة يا محمد هذه الدوال ترجع أشياء على حسب نظامك

بمعنى أنها غير ثابتة دائماً

لذا عليك أن تقرأ أكثر في الموضوع إذا أردت لبرنامجك أن يعمل على جميع الأجهزة

فكر بالتأكيد ستجد شيء :)

تحياتي

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

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

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

728x90.png

#5
علاء الصالحي كتب:

بالمناسبة يا محمد هذه الدوال ترجع أشياء على حسب نظامك

بمعنى أنها غير ثابتة دائماً

لذا عليك أن تقرأ أكثر في الموضوع إذا أردت لبرنامجك أن يعمل على جميع الأجهزة

فكر بالتأكيد ستجد شيء :)

تحياتي

تانى يا عم علاء

محمود يا سيدى

وبعدين انت تقصد الدوال ولا الkey ؟؟

اعتقد ان الـ Key ثابت ولكن قيمته بتختلف من نظام تشغيل لاخر

ولا ايه ؟؟

هل هذا ما تقصده ولا ايه ؟؟

Software Developer
Mahmoudkelany.com


 

#6

طيب يا عموو علاء

ممكن حد عنده مثلا Linux يجرب ويشوف هل الـ Keys شغاله عنده ولا لا ؟

لان انا مش مسطب Linux دلوقتى

:)

Software Developer
Mahmoudkelany.com


 

#7

لم أقصد الشيفرة الخاصة بك

وإنما قصدت أنك في بعض الأنظمة ستجد أحد المفاتيح ولن تجدها في الأخر مثال os.version (على فرض وجود واحد)

فعندما تبني عملك على وجود قيمة لهذا المفتاح ولا تكون موجودة سيظهر خطأ في البرنامج

لذا يجب عليك التأكد من كون المفتاح ضروري لك

فإن لم يكن يجب عليك أن تضع جملة تتأكد من قيمة المفتاح قبل استخدامه وأنه لا يساوي null

لذا أحببت لو أمكن أن نعرف ما هي المفاتيح الموجودة في كل الأنظمة وما الفروقات إن وجد من يتكلم عن الموضوع

تحياتي

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

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

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

728x90.png

#8
علاء الصالحي كتب:

لم أقصد الشيفرة الخاصة بك

وإنما قصدت أنك في بعض الأنظمة ستجد أحد المفاتيح ولن تجدها في الأخر مثال os.version (على فرض وجود واحد)

فعندما تبني عملك على وجود قيمة لهذا المفتاح ولا تكون موجودة سيظهر خطأ في البرنامج

لذا يجب عليك التأكد من كون المفتاح ضروري لك

فإن لم يكن يجب عليك أن تضع جملة تتأكد من قيمة المفتاح قبل استخدامه وأنه لا يساوي null

لذا أحببت لو أمكن أن نعرف ما هي المفاتيح الموجودة في كل الأنظمة وما الفروقات إن وجد من يتكلم عن الموضوع

تحياتي

امممم

ماشى

بس اعتقد ان حاجه زى os.version موجوده فكل انظمه التشغيل

على العموم انت جننتى وهاسبط لينوكس دولقتى

واجرب عليه الـ keys هذه اهم حاجه انها تعود بنتائج

وبالتالى فهى تعمل :)

لانها تعمل بناء على نظام التشغيل قصدى على القيمه الخاصه بكل مفتاح لانها عباره عن Map

key -> value :D

ربنا يسهل بس :)

Software Developer
Mahmoudkelany.com


 

#9

أنا قصدت كمثال os.version :(

لم أعني أنه فعلاً هناك بعض الأنظمة لن تجد لها هذا المفتاح

بالتوفيق مع Linux وربنا يستر ما تخرب الويندوز

على فكرة أسهلك تنزل Virtual Box وتنزل نسخة خاصة فيه وتخلص

تحياتي

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

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

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

728x90.png

#10
علاء الصالحي كتب:

أنا قصدت كمثال os.version :(

لم أعني أنه فعلاً هناك بعض الأنظمة لن تجد لها هذا المفتاح

بالتوفيق مع Linux وربنا يستر ما تخرب الويندوز

على فكرة أسهلك تنزل Virtual Box وتنزل نسخة خاصة فيه وتخلص

تحياتي

هأجرب الباقى يا عم علاء :D

اه ما انا شغال Virtual Box بتاع Sun مش بتاع Oracle اللى هو دلوقتى هههههههه

احنا بردوا شغالين من زمان :)

Software Developer
Mahmoudkelany.com


 

#11

بص الـ keys بتاعت الـ

System.getProperty

دى ثابته

انما الـ ٍ

System.getenv

اختلفت علشان الenvironment اختلفت

وبالتالى الخصائص هتختلف

لكن المهم ان الاداه بتجيب الخصائص والمفتاح والقيمه المقابله ليه

انا مش قولت انها على نظام تشغيل معين ههههههههههههههه

مش هتعرف تغلبنى بردوا يا عموو علاء :D

Software Developer
Mahmoudkelany.com


 

#12

وأنتا عارفني بحب أغلب أي حد

عايز أستغلك استغلال استراتيجي :lol:

أنتا طاقة خام وأنا مطرقة بشكل فيك بالطريقة الي تعجبني

بعيداً عن المزاح

المنطق يقول بما أن جماعة صن لم يضعوا هذه الأشياء كدوال منفصلة مثلاً

getOSName و getOSVersion فهذا له أحد معنيين

1- عدد الخصائص كبير جداً لدرجة أنهم تغلبوا في أنهم يكتبوا دالة لكل واحد أو خافوا من حجم الذاكرة للبرامج التي ستستخدم هذه الفئة

2- الخصائص نفسها متغيرة من نظام تشغيل إلى آخر أو من نسخة إلى نسخى أخرى لذا فقد رؤوا أن تكون على هذا النحو

كلا المنطقين يفي بالغرض

على كل لازال أمامنا saloris و os2 و آخرين حتى نتأكد من كلامك يا عم محمود

-صعب جداً تغلبني يا عم محمود :lol: -

تحياتي

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

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

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

728x90.png

#13

اقتراح ارجوا ان يكون مفيد،

1 - لماذا لا يكون هناك حقل "فلتر" ليسهل علي عملية البحث. لل Key & value

2 - اقترح اضافة JtextField لنسخ ال Key عند تحديده بالشكل التالي مثلا

System.getProperty("java.class.version")

وشكرا

#14
العيافـي كتب:

اقتراح ارجوا ان يكون مفيد،

1 - لماذا لا يكون هناك حقل "فلتر" ليسهل علي عملية البحث. لل Key & value

2 - اقترح اضافة JtextField لنسخ ال Key عند تحديده بالشكل التالي مثلا

System.getProperty("java.class.version")

وشكرا

اخى العيافى انا حاولت اعمل ليها فلتر لكن فشلت فى ذلك

عملت كل حاجه والJTextFiled لكن جيت اعمل الفلتر مش عارف ايه الغلط فى اللى انا عامله

ثانيا الاقتراح الثانى مش فاهم معناه ايه او المقصد ايه

دا الكود اللى حاولت اعمل فيه الفلتر

لكن لا يظهر البيانات فالجدول

لو حذفت الـ

outputTable.setRowSorter(sorter);

من الكود بيظهر البيانات ولكن الفلتر لا يعمل

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package systemparamters;

import java.awt.*;
import java.util.*;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;

/**
 *
 * @author Mahmoud Kelany
 */
public class SystemParamters extends JFrame {

	private JTable outputTable = new JTable();
	private JScrollPane scrollPane = new JScrollPane(outputTable);
	private JButton envButton = new JButton("Env");
	private JButton propertyButton = new JButton("Property");
	private JTextField filterTextField = new JTextField(20);
	private TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(outputTable.getModel());
	/////////////
	private Properties p = System.getProperties();
	private Object[] pKeys = p.keySet().toArray();
	/////
	private Map<String, String> env = System.getenv();
	private Object[] nKeys = env.keySet().toArray();

	public SystemParamters() {
    	super("System Properties & Environment values");
    	JPanel buttonPanel = new JPanel();
    	buttonPanel.add(new Label("Filter"));
    	buttonPanel.add(filterTextField);
    	buttonPanel.add(envButton);
    	buttonPanel.add(propertyButton);
    	add(scrollPane);
    	add(buttonPanel, BorderLayout.SOUTH);
    	makeEnvTable(nKeys.length);
    	/////////////////
    	envButton.addActionListener(new ActionListener() {

        	public void actionPerformed(ActionEvent e) {
            	makeEnvTable(nKeys.length);
        	}
    	});
    	propertyButton.addActionListener(new ActionListener() {

        	public void actionPerformed(ActionEvent e) {
            	makePropertyTable(pKeys.length);
        	}
    	});
    	filterTextField.getDocument().addDocumentListener(new DocumentListener() {

        	public void insertUpdate(DocumentEvent e) {
            	tableFilter();
        	}

        	public void removeUpdate(DocumentEvent e) {
            	tableFilter();
        	}

        	public void changedUpdate(DocumentEvent e) {
            	tableFilter();
        	}

        	private void tableFilter() {
            	RowFilter<TableModel, Object> rf = null;
            	rf = RowFilter.regexFilter(filterTextField.getText(), 0);
            	sorter.setRowFilter(rf);
        	}
    	});
    	outputTable.setRowSorter(sorter);
	}

	private void makePropertyTable(int length) {
    	Object tableArr[][] = new Object[length][2];
    	for (int i = 0; i < length; i++) {
        	Object[] rows = new Object[2];
        	rows[0] = pKeys.toString();
        	rows[1] = p.getProperty((String) pKeys);
        	tableArr = rows;
    	}
    	outputTable.setModel(new DefaultTableModel(tableArr, new String[]{"Properties Key", "Out Value"}));
    	outputTable.setFont(new Font("tohma", Font.BOLD, 14));
	}

	private void makeEnvTable(int length) {
    	Object tableArr[][] = new Object[length][2];
    	for (int i = 0; i < length; i++) {
        	Object[] rows = new Object[2];
        	rows[0] = nKeys.toString();
        	rows[1] = env.get(nKeys.toString());
        	tableArr = rows;
    	}
    	outputTable.setModel(new DefaultTableModel(tableArr, new String[]{"Environment Key", "Out Value"}));
    	outputTable.setFont(new Font("tohma", Font.BOLD, 14));
	}

	public static void main(String[] args) {
    	SystemParamters f = new SystemParamters();
    	f.setSize(1000, 700);
    	f.setLocationRelativeTo(null);
    	f.setExtendedState(JFrame.MAXIMIZED_BOTH);
    	f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	f.setVisible(true);
	}
}

علاء الصالحي كتب:

وأنتا عارفني بحب أغلب أي حد

عايز أستغلك استغلال استراتيجي :lol:

أنتا طاقة خام وأنا مطرقة بشكل فيك بالطريقة الي تعجبني

بعيداً عن المزاح

المنطق يقول بما أن جماعة صن لم يضعوا هذه الأشياء كدوال منفصلة مثلاً

getOSName و getOSVersion فهذا له أحد معنيين

1- عدد الخصائص كبير جداً لدرجة أنهم تغلبوا في أنهم يكتبوا دالة لكل واحد أو خافوا من حجم الذاكرة للبرامج التي ستستخدم هذه الفئة

2- الخصائص نفسها متغيرة من نظام تشغيل إلى آخر أو من نسخة إلى نسخى أخرى لذا فقد رؤوا أن تكون على هذا النحو

كلا المنطقين يفي بالغرض

على كل لازال أمامنا saloris و os2 و آخرين حتى نتأكد من كلامك يا عم محمود

-صعب جداً تغلبني يا عم محمود :lol: -

تحياتي

ماشى يا عم علاء

خلاص حقى برقبتى :D

Software Developer
Mahmoudkelany.com


 

#15

عزيزي محمود قمت بالتعديل على الكود في المشاركة الاولى (باضافة فلتر لل key & value )

كما اضفت حقل للنسخ . ( عند تحديد key في الجدول فانك ستجد جاهز في حقل النسخ لكي تقوم باستخدامه في برنامج آخر ) ارجوا ان تكون الفكره واضحة ..

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package systemparamters;

import java.awt.*;
import java.util.*;
import java.util.List;

import javax.swing.*;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.event.UndoableEditEvent;
import javax.swing.event.UndoableEditListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;

/**
 *
 * @author Mahmoud Kelany
 */
public class SystemParamters extends JFrame {

        private static final long serialVersionUID = 1L;
 //>>       
        private JTextField filterKey;
        private JTextField filterValue;
    	private TableRowSorter<TableModel> sorter;
    	private DefaultTableModel defaultTableModel;
    	private JTextField copyField=new JTextField(35);
    	private boolean isProperty=false;
    	private String propertyFormat="System.getProperty(\"%s\")";
    	private String envFormat="System.getenv(\"%s\")";
//<<



		private JTable outputTable = new JTable();
        private JScrollPane scrollPane = new JScrollPane(outputTable);
        private JButton envButton = new JButton("Env");
        private JButton propertyButton = new JButton("Property");
        /////////////
        private Properties p = System.getProperties();
        private Object[] pKeys = p.keySet().toArray();
        /////

        private Map<String, String> env = System.getenv();
        private Object[] nKeys = env.keySet().toArray();

        public SystemParamters() {
        super("System Properties & Environment values");
        JPanel buttonPanel = new JPanel();

//>>        
        copyField.addFocusListener(new java.awt.event.FocusAdapter() { 
			public void focusGained(java.awt.event.FocusEvent e) {    
				copyField.selectAll();
			}
		});
        buttonPanel.add(copyField);
//<<        

        buttonPanel.add(envButton);
        buttonPanel.add(propertyButton);
        add(scrollPane);
        add(buttonPanel, BorderLayout.SOUTH);

//>>        
        JPanel filtersPanel=new JPanel(new GridLayout(1, 2));
        filterKey=new JTextField();
        filterValue=new JTextField();
        filtersPanel.add(filterKey);
        filtersPanel.add(filterValue);
        filterKey.getDocument().addUndoableEditListener(new UndoableEditListener() {
		     public void undoableEditHappened(UndoableEditEvent e) {
			    	filterAction();
		     }
		});
        filterValue.getDocument().addUndoableEditListener(new UndoableEditListener() {
		     public void undoableEditHappened(UndoableEditEvent e) {
			    	filterAction();
		     }
		});
        filtersPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
        add(filtersPanel, BorderLayout.NORTH);
        outputTable.addMouseListener(new MouseAdapter(){
			public void mousePressed(MouseEvent e){
		        JTable table = (JTable)e.getSource();
		        Point p = e.getPoint();
		        int row = table.rowAtPoint(p);
		        String value = (String)table.getValueAt(row,0);
		        if(isProperty){
		        	copyField.setText(String.format(propertyFormat,value));
		        }else{
		        	copyField.setText(String.format(envFormat,value));
		        }
		    }
		});
 //<<       


        makeEnvTable(nKeys.length);
        /////////////////
        envButton.addActionListener(new ActionListener() {

                public void actionPerformed(ActionEvent e) {
                makeEnvTable(nKeys.length);
                }
        });
        propertyButton.addActionListener(new ActionListener() {

                public void actionPerformed(ActionEvent e) {
                makePropertyTable(pKeys.length);
                }
        });



        }

//>>
        private void filterAction(){
	            sorter = new TableRowSorter<TableModel>(defaultTableModel);
	        	List<RowFilter<Object,Object>> filters=new ArrayList<RowFilter<Object,Object>>();
	        	filters.add(RowFilter.regexFilter("(?i)"+filterKey.getText(), 0));
	        	filters.add(RowFilter.regexFilter("(?i)"+filterValue.getText(), 1));
	        	sorter.setRowFilter(RowFilter.andFilter(filters));
	        	this.outputTable.setRowSorter(this.sorter);
        }
//<<        

        private void makePropertyTable(int length) {
//>>
        	isProperty=true;
    	if(defaultTableModel!=null){
        	defaultTableModel.setRowCount(length);
        }
//<<    	
        Object tableArr[][] = new Object[length][2];
        for (int i = 0; i < length; i++) {
                Object[] rows = new Object[2];
                rows[0] = pKeys.toString();
                rows[1] = p.getProperty((String) pKeys);
                tableArr = rows;
        }
        defaultTableModel=new DefaultTableModel(tableArr, new String[]{"Properties Key", "Out Value"});
        outputTable.setModel(defaultTableModel);
        outputTable.setFont(new Font("tohma", Font.BOLD, 14));
//>>        
        filterAction();
//<<
        }

        private void makeEnvTable(int length) {
        	isProperty=false;
        if(defaultTableModel!=null){
        	defaultTableModel.setRowCount(length);
        }
        Object tableArr[][] = new Object[length][2];
        for (int i = 0; i < length; i++) {
                Object[] rows = new Object[2];
                rows[0] = nKeys.toString();
                rows[1] = env.get(nKeys.toString());
                tableArr = rows;
        }
        defaultTableModel=new DefaultTableModel(tableArr, new String[]{"Environment Key", "Out Value"});
        outputTable.setModel(defaultTableModel);
        outputTable.setFont(new Font("tohma", Font.BOLD, 14));
//>>        
        filterAction();
//<<
        }

        public static void main(String[] args) {
        SystemParamters f = new SystemParamters();
        f.setSize(800, 800);
        f.setLocationRelativeTo(null);
        f.setExtendedState(JFrame.MAXIMIZED_BOTH);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);
        }
}

وجهة نظر

في Jframe ارى ان استخدم الطريقة pack() لتحديد الحجم افضل من الطريقة size ،

اضفت نسخة ملف الجار

SysProps.jar

تم تعديل هذه المشاركة بواسطة العيافـي في 21 نوفمبر 2010 في 19:25

#16

الفكره وضحت اخى العيافى شغل جميل جدا :)

وجزاك الله كل خير على ما قمت به من بذل وقت فى التعديل :)

لكن لدى سوال

ممكن تشرح الداله filterAction

لان مش فاهم لانها غريبه عن اللى انا كنت بعمله

وشكرا مره اخرى :)

Software Developer
Mahmoudkelany.com


 

#17

لا اعلم ماهو الغريب ،

لكن ما قمت به هو انشاء فلتر للعمود الاول ( القيمة صفر تمثل موقع العمود)

RowFilter.regexFilter("(?i)"+filterKey.getText(), 0)

وكذلك فلتر للعمود الثاني

ثم اضفتها للكائن sorter

و اضفت هذا الكائن ل Table

#18
العيافـي كتب:

لا اعلم ماهو الغريب ،

لكن ما قمت به هو انشاء فلتر للعمود الاول ( القيمة صفر تمثل موقع العمود)

RowFilter.regexFilter("(?i)"+filterKey.getText(), 0)

وكذلك فلتر للعمود الثاني

ثم اضفتها للكائن sorter

و اضفت هذا الكائن ل Table

تمام

لكن ما المقصود بـ"(?i)"

Software Developer
Mahmoudkelany.com


 

#20

ماشى تمام اخى عثمان

لكن الموضوع بالنسبه لى يحتاج لوقت

لانى اول مره اتعامل مع الـ Pattern

لكن هل هناك مشكله ان حذفتها ؟؟؟

Software Developer
Mahmoudkelany.com


 

#21

لم يمر علي هذا التعبير المنتظم من قبل

؟ تعني وجود شيء أو عدم وجوده

لكن يجب أن تأتي بعد شيء مثل

a?

بمعنى وجود حرف a أو عدم وجود شيء

هل ممكن أن تشرح معناه أخي العيافي

تحياتي

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

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

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

728x90.png

#22

هلا عزيزي علاء

التعبير هذا يعني عدم الاهتمام بحاله الحرف أي ان H تساوي h مثلا

علما بانه يختلف عن التعبير الذي ذكرته

يمكنك رؤية الرابط التالي http://download.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html#CASE_INSENSITIVE

#23

اهلا بالجميع

عزيزى العيافى اظن ان الدالة تقوم باضافة هذا المقطع تلقائيا

مثلا ال pattern الذى كتبته يعنى اذا سبقها حرف upper او lower ومع ذلك فى النتيجة تظهر القيم التى تسبقها شرطة منخفضة ( _ )

واذا كانت ضرورية فلماذا لم تكتبها فى نهاية الجملة ايضا ؟

كما ان التغاضى عن حالة الحروف يكتب هكذا

"[a-z[A-Z]]?+"

على حد علمى

تحياتى

تم تعديل هذه المشاركة بواسطة Oracle_Java في 23 نوفمبر 2010 في 16:24


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#24

عفوا عزيزي اوركل ... ما فهمت المفصود هل بامكانك توضيح اكثر

وشكرا

#25

public class Text1
{
public static void main(String [] args)
{
String h="Java";
System.out.println(h.matches("[a-z[A-Z]]?ava"));//true [a-z[A-Z]] ------>a through z or A through Z


h="w";
System.out.println(h.matches("[a-z]?"));//true ? ----->zero or one
h="";
System.out.println(h.matches("[a-z]?"));//true
h="ww";
System.out.println(h.matches("[a-z]?"));//false


h="w";
System.out.println(h.matches("[a-z]+"));//true + ----->one or more
h="";
System.out.println(h.matches("[a-z]+"));//false
h="ww";
System.out.println(h.matches("[a-z]+"));//true



h="w";
System.out.println(h.matches("[a-z]*"));//true * ----->meny times
h="";
System.out.println(h.matches("[a-z]*"));//true
h="ww";
System.out.println(h.matches("[a-z]*"));//true




}
}
import java.util.regex.Pattern;

اعتقد انها تستخدم

( كم عدد المرات حيتكرر النمط الموشار إليه في المحتوى)

وشكرا

تم تعديل هذه المشاركة بواسطة pro.fahd في 24 نوفمبر 2010 في 14:01

1
albert_einstein.jpg

Untitled-AE.jpg

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