Bitcoin

Bitcoin
Bitcoin

Text Editor using java programming language

 Here’s a simple Java text editor program using Swing. It provides a window with basic functionality to create, open, edit, and save text files.


Code:


import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.io.*;


public class SimpleTextEditor extends JFrame implements ActionListener {

    JTextArea textArea;

    JScrollPane scrollPane;

    JMenuBar menuBar;

    JMenu fileMenu;

    JMenuItem newFile, openFile, saveFile, exitApp;


    public SimpleTextEditor() {

        // Window Title

        setTitle("Simple Text Editor");

        setSize(600, 400);

        setDefaultCloseOperation(EXIT_ON_CLOSE);


        // Text Area

        textArea = new JTextArea();

        scrollPane = new JScrollPane(textArea);

        add(scrollPane);


        // Menu Bar

        menuBar = new JMenuBar();

        fileMenu = new JMenu("File");


        newFile = new JMenuItem("New");

        openFile = new JMenuItem("Open");

        saveFile = new JMenuItem("Save");

        exitApp = new JMenuItem("Exit");


        newFile.addActionListener(this);

        openFile.addActionListener(this);

        saveFile.addActionListener(this);

        exitApp.addActionListener(this);


        fileMenu.add(newFile);

        fileMenu.add(openFile);

        fileMenu.add(saveFile);

        fileMenu.add(exitApp);

        menuBar.add(fileMenu);


        setJMenuBar(menuBar);

        setVisible(true);

    }


    public void actionPerformed(ActionEvent e) {

        if (e.getSource() == newFile) {

            textArea.setText("");

        } else if (e.getSource() == openFile) {

            JFileChooser fileChooser = new JFileChooser();

            int option = fileChooser.showOpenDialog(this);

            if (option == JFileChooser.APPROVE_OPTION) {

                try (BufferedReader br = new BufferedReader(new FileReader(fileChooser.getSelectedFile()))) {

                    textArea.read(br, null);

                } catch (IOException ex) {

                    ex.printStackTrace();

                }

            }

        } else if (e.getSource() == saveFile) {

            JFileChooser fileChooser = new JFileChooser();

            int option = fileChooser.showSaveDialog(this);

            if (option == JFileChooser.APPROVE_OPTION) {

                try (BufferedWriter bw = new BufferedWriter(new FileWriter(fileChooser.getSelectedFile()))) {

                    textArea.write(bw);

                } catch (IOException ex) {

                    ex.printStackTrace();

                }

            }

        } else if (e.getSource() == exitApp) {

            System.exit(0);

        }

    }


    public static void main(String[] args) {

        SwingUtilities.invokeLater(() -> new SimpleTextEditor());

    }

}



---


Features:


New File → Clears the text area.


Open File → Allows selecting and loading a text file.


Save File → Saves the current text to a file.


Exit → Closes the application 


Controlling a television via Wi‑Fi using Java

 Controlling a television via Wi‑Fi using Java requires:


1. A smart TV or a device like a Chromecast/Fire Stick that exposes a network API.



2. A phone app (Java code on Android or a desktop app) that sends commands via HTTP or socket connection to the TV.





---


Simplified Example (Simulated TV over Wi‑Fi)


This example has two parts:


TV Server (runs on the TV or simulated computer)


Phone Controller (runs on the phone/computer)




---


1. TV Server (Simulated TV)


import java.io.*;

import java.net.*;


public class TVServer {

    private static boolean power = false;

    private static int volume = 10;

    private static int channel = 1;


    public static void main(String[] args) throws IOException {

        ServerSocket serverSocket = new ServerSocket(5000);

        System.out.println("TV Server running on port 5000...");


        while (true) {

            Socket socket = serverSocket.accept();

            BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));

            String command = in.readLine();

            System.out.println("Received: " + command);


            switch (command) {

                case "POWER" -> power = !power;

                case "VOL_UP" -> { if (power) volume++; }

                case "VOL_DOWN" -> { if (power && volume > 0) volume--; }

                case "CHANNEL_NEXT" -> { if (power) channel++; }

                case "CHANNEL_PREV" -> { if (power && channel > 1) channel--; }

            }

            System.out.println("Power: " + power + ", Volume: " + volume + ", Channel: " + channel);

            socket.close();

        }

    }

}



---


2. Phone Controller (Client)


import java.io.*;

import java.net.*;

import java.util.Scanner;


public class PhoneControllerWiFi {

    public static void main(String[] args) throws IOException {

        Scanner sc = new Scanner(System.in);

        String serverIP = "192.168.1.5"; // TV's IP address (change to real one)

        int port = 5000;


        while (true) {

            System.out.println("\n--- PHONE REMOTE (Wi-Fi) ---");

            System.out.println("1. Power ON/OFF");

            System.out.println("2. Volume Up");

            System.out.println("3. Volume Down");

            System.out.println("4. Channel Next");

            System.out.println("5. Channel Previous");

            System.out.println("0. Exit");

            System.out.print("Enter choice: ");

            int choice = sc.nextInt();


            String command = switch (choice) {

                case 1 -> "POWER";

                case 2 -> "VOL_UP";

                case 3 -> "VOL_DOWN";

                case 4 -> "CHANNEL_NEXT";

                case 5 -> "CHANNEL_PREV";

                case 0 -> { System.out.println("Exiting..."); return; }

                default -> "INVALID";

            };


            if (!command.equals("INVALID")) {

                try (Socket socket = new Socket(serverIP, port)) {

                    PrintWriter out = new PrintWriter(socket.getOutputStream(), true);

                    out.println(command);

                }

            }

        }

    }

}



---


How it Works


1. Run TVServer.java on one computer (simulating the TV).



2. Run PhoneControllerWiFi.java on another device connected to the same Wi‑Fi network.



3. Replace "192.168.1.5" with the actual IP address of the computer running TVServer.



4. Commands will be sent via TCP sockets.





---


To Control a Real TV


Many smart TVs (Samsung, LG, Android TV) support HTTP or WebSocket APIs.


You need to use their API docume

ntation to send actual commands.


Example: For an Android TV, you can send HTTP POST requests to http://<TV-IP>:8080/command.




PROFESSIONAL DAILY ACTIVITIES MANAGEMENT APPLICATION

 We'll make a professional daily activities management application using a clickable calendar (date picker) instead of typing the date manually.

For pure Java Swing, we can use JDateChooser from JCalendar (a small open-source library).


---


Steps to Add Date Picker


1. Download JCalendar Library


Get JCalendar.jar and add it to your project classpath.


2. Use JDateChooser instead of a simple text field.


---


Updated Code with Calendar


import com.toedter.calendar.JDateChooser;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.text.SimpleDateFormat;

import java.util.*;

import java.util.List;

import java.util.Timer;

import java.util.TimerTask;


public class DailyActivityCoordinatorCalendar extends JFrame {

    private JTextField activityField, timeField;

    private JDateChooser dateChooser;

    private DefaultListModel<String> activityListModel;

    private List<Activity> activityListData = new ArrayList<>();

    private SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm");

    private SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");


    public DailyActivityCoordinatorCalendar() {

        setTitle("Daily Activity Coordinator with Calendar");

        setSize(500, 350);

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        setLocationRelativeTo(null);


        // Components

        JLabel activityLabel = new JLabel("Activity:");

        activityField = new JTextField(10);


        JLabel timeLabel = new JLabel("Time (HH:mm):");

        timeField = new JTextField(6);


        JLabel dateLabel = new JLabel("Pick Date:");

        dateChooser = new JDateChooser();

        dateChooser.setDateFormatString("dd-MM-yyyy");


        JButton addButton = new JButton("Add Activity");

        JButton clearButton = new JButton("Clear All");


        activityListModel = new DefaultListModel<>();

        JList<String> activityList = new JList<>(activityListModel);


        // Input panel

        JPanel inputPanel = new JPanel();

        inputPanel.add(activityLabel);

        inputPanel.add(activityField);

        inputPanel.add(timeLabel);

        inputPanel.add(timeField);

        inputPanel.add(dateLabel);

        inputPanel.add(dateChooser);

        inputPanel.add(addButton);

        inputPanel.add(clearButton);


        add(inputPanel, BorderLayout.NORTH);

        add(new JScrollPane(activityList), BorderLayout.CENTER);


        // Button listeners

        addButton.addActionListener(e -> addActivity());

        clearButton.addActionListener(e -> clearActivities());


        // Timer for alarm

        Timer timer = new Timer(true);

        timer.scheduleAtFixedRate(new TimerTask() {

            public void run() {

                checkAlarms();

            }

        }, 0, 60000); // check every minute

    }


    private void addActivity() {

        try {

            String activity = activityField.getText().trim();

            Date selectedDate = dateChooser.getDate();

            Date time = timeFormat.parse(timeField.getText().trim());


            if (!activity.isEmpty() && selectedDate != null) {

                activityListModel.addElement(dateFormat.format(selectedDate) + " " +

                        timeField.getText() + " - " + activity);

                activityListData.add(new Activity(activity, selectedDate, time));

                activityField.setText("");

                timeField.setText("");

            } else {

                JOptionPane.showMessageDialog(this, "Enter activity and pick date!");

            }

        } catch (Exception ex) {

            JOptionPane.showMessageDialog(this, "Invalid time format (HH:mm)");

        }

    }


    private void clearActivities() {

        activityListModel.clear();

        activityListData.clear();

    }


    private void checkAlarms() {

        Date now = new Date();

        String today = dateFormat.format(now);

        String currentTime = timeFormat.format(now);


        for (Activity a : activityListData) {

            if (dateFormat.format(a.date).equals(today) &&

                timeFormat.format(a.time).equals(currentTime)) {

                SwingUtilities.invokeLater(() -> {

                    JOptionPane.showMessageDialog(this,

                            "Reminder: " + a.name + " at " + currentTime);

                });

            }

        }

    }


    class Activity {

        String name;

        Date date;

        Date time;

        Activity(String name, Date date, Date time) {

            this.name = name;

            this.date = date;

            this.time = time;

        }

    }


    public static void main(String[] args) {

        SwingUtilities.invokeLater(() -> new DailyActivityCoordinatorCalendar().setVisible(true));

    }

}


Added JDateChooser for a professional date picker.


No need to type date manually anymore.


Rest of the features (alarm notifications, clear, list display) remain.


#followers #highlights

Facebook