[Java] برنامج محرر نصوص بالجافا مثل محرر نصوص الوورد إلى حد ما
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: مشاريع مفتوحة المصدر Java App
صفحة 1 من اصل 1 • شاطر
[Java] برنامج محرر نصوص بالجافا مثل محرر نصوص الوورد إلى حد ما
الدالة الرئيسية
- الكود:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package editor;
/**
*
* @author darag
*/
public class Editor {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
new edi();
// TODO code application logic here
}
}
الفصيل الثاني
- الكود:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package editor;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GraphicsEnvironment;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.AdjustmentEvent;
import java.awt.event.AdjustmentListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;
import javax.swing.JButton;
import javax.swing.JColorChooser;
import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JSpinner;
import javax.swing.JTextArea;
import javax.swing.ScrollPaneConstants;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.filechooser.FileNameExtensionFilter;
import java.util.logging.Logger;
import java.util.logging.Level;
import java.awt.print.PrinterException;
import javax.swing.JOptionPane;
import javax.swing.UIManager;
import javax.swing.UIManager.LookAndFeelInfo;
/**
*
* @author darag
*/
public class edi extends JFrame implements ActionListener{
JTextArea textArea;
JScrollPane scrollPane;
JSpinner fontSizeSpinner;
JLabel fontlabel;
JButton color;
JComboBox font;
JMenuBar menuBar;
JMenu fileMenu;
JMenu editMenu;
JMenuItem openItem;
JMenuItem exitItem;
JMenuItem saveItem;
JMenuItem print;
JMenuItem copy;
JMenuItem paste;
JMenuItem background;
JMenu help;
JMenuItem keyboardShortcuts ;
JMenuItem about;
JLabel words = new JLabel(" words:0");
JLabel position = new JLabel("Position:");
JLabel mouseStatus = new JLabel(" Mouse Status:");
JLabel lines = new JLabel("Lines: 0");
JLabel label = new JLabel("Adjustment Value: 50");
edi() {
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("Text Editor");
this.setSize(500, 500);
this.setVisible(true);
this.setLocationRelativeTo(null);
this.setLayout(new FlowLayout());
textArea = new JTextArea();
textArea.setLineWrap(true);
textArea.setWrapStyleWord(true);
textArea.setFont(new Font("Arial",Font.PLAIN,20));
scrollPane = new JScrollPane(textArea);
scrollPane.setPreferredSize(new Dimension(450,450));
scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
fontlabel = new JLabel("Font :");
fontSizeSpinner = new JSpinner();
fontSizeSpinner.setPreferredSize(new Dimension(50,25));
fontSizeSpinner.setValue(20);
fontSizeSpinner.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
textArea.setFont(new Font(textArea.getFont().getFamily(),Font.PLAIN,(int)fontSizeSpinner.getValue()));
}
});
color = new JButton("Color");
color.addActionListener(this);
String[] fonts = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
font = new JComboBox(fonts);
font.addActionListener(this);
font.setSelectedItem("Arial");
menuBar = new JMenuBar();
fileMenu = new JMenu("file");
editMenu = new JMenu("edit");
openItem = new JMenuItem("Open");
saveItem = new JMenuItem("Save");
exitItem = new JMenuItem("Exit");
print = new JMenuItem("Print");
copy = new JMenuItem("Copy");
paste = new JMenuItem("Paste");
background = new JMenuItem("Background");
help = new JMenu("Help");
keyboardShortcuts = new JMenuItem("Keyboard Shortcuts");
about = new JMenuItem("About");
openItem.addActionListener(this);
saveItem.addActionListener(this);
exitItem.addActionListener(this);
print.addActionListener(this);
copy.addActionListener(this);
paste.addActionListener(this);
copy.addActionListener(this);
background.addActionListener(this);
paste.addActionListener(this);
keyboardShortcuts.addActionListener(this);
about.addActionListener(this);
this.setJMenuBar(menuBar);
menuBar.add(fileMenu);
menuBar.add(editMenu);
menuBar.add(help);
fileMenu.add(openItem);
fileMenu.add(saveItem);
fileMenu.add(exitItem);
fileMenu.add(print);
editMenu.add(copy);
editMenu.add(paste);
editMenu.add(background);
help.add(keyboardShortcuts);
help.add(about);
this.add(words);
this.add(lines);
this.add(position);
this.add(mouseStatus);
this.add(color);
this.add(fontlabel);
this.add(fontSizeSpinner);
this.add(font);
this.add(scrollPane);
this.setVisible(true);
fileMenu.setMnemonic('F');
editMenu.setMnemonic('E');
exitItem.setMnemonic('X');
about.setMnemonic('A');
keyboardShortcuts.setMnemonic('K');
help.setMnemonic('H');
textArea.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
words.setText("words: " + textArea.getText().length()); // chars كنص للكائن JTextArea هنا وضعنا عدد أحرف الكائن
lines.setText("Lines: " + textArea.getLineCount());
}
});
textArea.addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {
position.setText(" Mouse Position: ("+e.getX()+", "+e.getY() +")");
}
@Override
public void mousePressed(MouseEvent e) {
mouseStatus.setText(" Mouse Status: Mouse Pressed");
}
@Override
public void mouseReleased(MouseEvent e) {
mouseStatus.setText(" Mouse Status: Mouse Released");
}
@Override
public void mouseEntered(MouseEvent e) {
mouseStatus.setText(" Mouse Status: Mouse Entered");
}
@Override
public void mouseExited(MouseEvent e) {
mouseStatus.setText(" Mouse Status: Mouse Exited");
}
});
this.addWindowListener(new WindowListener() {
@Override
public void windowOpened(WindowEvent e) {
JOptionPane.showMessageDialog(null, "Event: Window Opened");
}
@Override
public void windowClosing(WindowEvent e) {
JOptionPane.showMessageDialog(null, "Event: Window Closing");
}
@Override
public void windowClosed(WindowEvent e) {
JOptionPane.showMessageDialog(null, "Event: Window Closed");
}
@Override
public void windowIconified(WindowEvent e) {
JOptionPane.showMessageDialog(null, "Event: Window Iconified");
}
@Override
public void windowDeiconified(WindowEvent e) {
JOptionPane.showMessageDialog(null, "Event: Window Deiconified");
}
@Override
public void windowActivated(WindowEvent e) {
}
@Override
public void windowDeactivated(WindowEvent e) {
}
});
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==color){
JColorChooser colorChooser = new JColorChooser();
Color col = colorChooser.showDialog(null,"Choose a color",Color.BLACK);
textArea.setForeground(col);
}
if(e.getSource()==font){
textArea.setFont(new Font((String)font.getSelectedItem(),Font.PLAIN,textArea.getFont().getSize()));
}
if(e.getSource()==openItem){
JFileChooser fileChooser = new JFileChooser();
fileChooser.setCurrentDirectory(new File("."));
FileNameExtensionFilter filter = new FileNameExtensionFilter("All Files ", "txt" , "html", "doc" ,"docx", "rtf", "java");
fileChooser.setFileFilter(filter);
int response = fileChooser.showOpenDialog(null);
if(response == JFileChooser.APPROVE_OPTION){
File file = new File(fileChooser.getSelectedFile().getAbsolutePath());
Scanner fileIn = null;
try{
fileIn = new Scanner(file);
if(file.isFile()){
while(fileIn.hasNextLine()){
String line = fileIn.nextLine()+"\n";
textArea.append(line);
}
}
}
catch(FileNotFoundException e1){
e1.printStackTrace();
}
finally{
fileIn.close();
}
}
}
if(e.getSource()==saveItem){
JFileChooser fileChooser = new JFileChooser();
fileChooser.setCurrentDirectory(new File("."));
int response = fileChooser.showSaveDialog(null);
if(response == JFileChooser.APPROVE_OPTION){
File file;
PrintWriter fileOut = null;
file = new File(fileChooser.getSelectedFile().getAbsolutePath());
try{
fileOut = new PrintWriter(file);
fileOut.println(textArea.getText());
}
catch(FileNotFoundException e1){
e1.printStackTrace();
}
finally{
fileOut.close();
}
}
}
if(e.getSource()==print){
try {
textArea.print();
} catch (PrinterException ex) {
Logger.getLogger(edi.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(e.getSource()==exitItem){
System.exit(0);
}
if(e.getSource()==copy){
textArea.selectAll();
textArea.copy();
textArea.setCaretPosition(textArea.getText().length());
}
if(e.getSource()==paste){
textArea.paste();
}
if(e.getSource()==background){
JColorChooser colorChooser = new JColorChooser();
Color col = colorChooser.showDialog(null,"Choose a color",Color.BLACK);
textArea.setBackground(col);
}
else if (e.getSource() == about)
{
String str = "<html>"
+ "<big>Text Editor</big><br><br>"
+ "<p>Prepared by <b>ebn darrge</b><br><br>"
+ "If you have any comments, ideas.. just let know<br><br>"
+ "email: Ertyopoken@hotmail..com<br>"
+ "<u>Note</u><br>"
+ "<p><i> ref bro code- harmush java- JavaHow to program book</i></p>"
+ "<html>";
JOptionPane.showMessageDialog(getContentPane(), str, "About", JOptionPane.PLAIN_MESSAGE);
}
else if (e.getSource() == keyboardShortcuts)
{
String str = "<html>"
+ "<ul>"
+ "<li>Press ALt+ F File Menu</li>"
+ "<li>Press ALt+ A About Menu</li>"
+ "<li>Press ALt+ E edit Menu.</li>"
+ "<li>Press ALt+ x to exit Menu.</li>"
+ "<li>Press ALt+ K keyboardShortcuts.</li>"
+ "<li>Press ALt+ H to help Menu.</li>"
+ "<li>Press ALt+ A to About Menu.</li>"
+ "</ul>"
+ "<html>";
JOptionPane.showMessageDialog(getContentPane(), str, "Keyboard Shortcuts", JOptionPane.PLAIN_MESSAGE);
}
}
}
عدل سابقا من قبل عبدالرحمن محمد دراج في الخميس يناير 14, 2021 11:23 pm عدل 1 مرات (السبب : تم إضافة ميزات جديدة)
عبدالرحمن محمد دراج- .
- تاريخ التسجيل : 08/01/2021
المساهمات : 3
النقاط : 8
التقيم : 1
الدولة :
الجنس :
رد: [Java] برنامج محرر نصوص بالجافا مثل محرر نصوص الوورد إلى حد ما
منقول نوعا ما من قناة برو كود على اليوتيوب و تم تعديله
عبدالرحمن محمد دراج- .
- تاريخ التسجيل : 08/01/2021
المساهمات : 3
النقاط : 8
التقيم : 1
الدولة :
الجنس :
رد: [Java] برنامج محرر نصوص بالجافا مثل محرر نصوص الوورد إلى حد ما
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
| |
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: مشاريع مفتوحة المصدر Java App
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
الثلاثاء مارس 26, 2024 6:26 pm من طرف moslema_r
» شركة تنظيف استراحات بالرياض
الأحد مارس 24, 2024 10:49 pm من طرف moslema_r
» كشف تسربات المياه في جدة
السبت مارس 23, 2024 7:23 pm من طرف gmalnagy
» خدمات كشف تسربات المياه بخصم 25% - اتصل الان
السبت مارس 23, 2024 7:22 pm من طرف gmalnagy
» شركة تنظيف ثريات بالرياض
الخميس مارس 21, 2024 7:23 pm من طرف moslema_r
» كهربائي منازل بالرياض
الأحد مارس 17, 2024 1:52 pm من طرف رانيا حماد
» افضل شركة نقل عفش بالرياض نقل باكستاني 40% خصم | موقع الانوار
الأحد مارس 17, 2024 1:25 pm من طرف رانيا حماد
» افضل معلم جبس بالرياض تركيب جبس بورد بالرياض 20% خصم اتصل الآن
الأحد مارس 17, 2024 1:09 pm من طرف رانيا حماد
» شراء اثاث مستعمل بالكويت بخصم 30%
الأحد مارس 17, 2024 12:54 pm من طرف رانيا حماد
» افضل فني كهربائي منازل بالرياض جودة 100% | اتصل الآن
الأحد مارس 17, 2024 12:36 pm من طرف رانيا حماد