Как выбрать строку в jtextarea

#java #swing #user-interface #jtextarea #pos

#java #качать #пользовательский интерфейс #jtextarea #позиция

Вопрос:

Мне нужно выбрать строку в jtextarea

это мой первый проект, в котором я создаю pos-систему с использованием Java, здесь мне нужно сделать следующее: когда в jtextarea есть список товаров, которые клиент добавляет в корзину, и внезапно клиент хочет удалить некоторые товары из корзины, тогда моя pos-система должна позволять выбирать нужные товары.элемент из строки и удалить его, а также удалить его из таблицы mysql

 textArea1.setText(item1   "n"   item2   "n"   item3   "n");
  

когда в jtextarea есть список товаров, которые клиент добавляет в корзину, и внезапно клиент хочет удалить некоторые товары, тогда моя pos-система должна позволять выбирать товар из строки и удалять его, а также удалять его из таблицы mysql

и если вы считаете, что есть лучший объект, чем jtextarea, пожалуйста, предложите его тоже.

Спасибо

Комментарии:

1. Поскольку вы имеете дело со списком элементов, возможно, рассмотрите возможность использования JList .

Ответ №1:

Основываясь на одном из ответов @MadProgrammer (к сожалению, я не могу получить ссылку), я смог создать это

 
import javax.swing.text.BadLocationException;
import javax.swing.text.Utilities;

public class TextLineSelectionTest extends javax.swing.JFrame {

    public TextLineSelectionTest() {
        initComponents();
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jScrollPane1 = new javax.swing.JScrollPane();
        jTextArea1 = new javax.swing.JTextArea();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jTextArea1.setColumns(20);
        jTextArea1.setRows(5);
        jTextArea1.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTextArea1MouseClicked(evt);
            }
        });
        jScrollPane1.setViewportView(jTextArea1);

        getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER);

        pack();
    }// </editor-fold>                        

    private void jTextArea1MouseClicked(java.awt.event.MouseEvent evt) {                                        
        int pos = jTextArea1.getCaretPosition();
        try {

            int start =Utilities.getRowStart(jTextArea1, pos);
            int end =Utilities.getRowEnd(jTextArea1, pos);
            jTextArea1.setSelectionStart(start);
            jTextArea1.setSelectionEnd(end);
        } catch (BadLocationException e) {
            //something is messed up
            e.printStackTrace();
        }
    }                                       

    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new TextLineSelectionTest().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextArea jTextArea1;
    // End of variables declaration                   
}
  

используя значение по умолчанию Utilities .