#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
.