У меня есть JFrame
, в котором есть 2 текстовых поля и 1 JButton
. Пользователям необходимо ввести некоторую строку в текстовое поле. Когда пользователь нажимает кнопку в JFrame, эти строки отображаются в JTable
. Я не получаю код, который я должен писать с нажатием кнопки. Пожалуйста, помогите мне.событие прилагается с нажатием кнопки
ответ
Посмотрите на метод void addActionListener(ActionListener l)
. Также часто помогает Javadoc определенного класса: Java API
вам нужно добавить кнопку actionlistener к кнопке. попробуйте выполнить поиск в google. на данный момент вы можете посмотреть на эту ссылку Jbutton example
Ваше описание слишком расплывчато для хорошего ответа, но я подозреваю, что вам не хватает шага, добавляя к кнопке прослушиватель действий. Это описано, например. в Sun's Swing tutorials. Я лично не нравится их стиль и предпочитают анонимные внутренние классы себя:
myButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
callMyMethod();
}
}
В любом случае работает, я предпочитаю анонимные внутренние классы, так как они держат вещи местных и избежать массивную метод переключения в противном случае вы получите.
Важная вещь здесь «CallMyMethod()». Не записывайте логику внутри прослушивателя действий, а вызывайте метод, в котором вы определяете свою логику (возможно, даже в каком-то другом классе контроллера). – Juri
У меня на самом деле был этот дополнительный комментарий, написанный в оригинальном ответе, но затем решил для краткости :-) Может быть, я не должен был. Я стараюсь, чтобы содержание actionPerformed было примерно до одной строки (одна строка в> 90%, случайная «получить X от события, а затем метод вызова» закрадывается). –
Для целей обучения:
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;
import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.GroupLayout.Alignment;
import javax.swing.table.AbstractTableModel;
public class NameGUI extends JFrame {
class NamePair {
String firstName;
String lastName;
}
class NameModel extends AbstractTableModel {
List<NamePair> names = new ArrayList<NamePair>();
@Override
public String getColumnName(int column) {
switch (column) {
case 0:
return "First name";
case 1:
return "Last name";
}
return "";
}
@Override
public int getColumnCount() {
return 2;
}
@Override
public int getRowCount() {
return names.size();
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
switch (columnIndex) {
case 0:
return names.get(rowIndex).firstName;
case 1:
return names.get(rowIndex).lastName;
}
return null;
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return true;
}
@Override
public void setValueAt(Object value, int rowIndex, int columnIndex) {
switch (columnIndex) {
case 0:
names.get(rowIndex).firstName = String.valueOf(value);
break;
case 1:
names.get(rowIndex).lastName = String.valueOf(value);
break;
}
}
}
JTextField firstName;
JTextField lastName;
JButton addName;
JTable nameTable;
NameModel nameModel;
public NameGUI() {
super("My GUI");
Container c = getContentPane();
GroupLayout gl = new GroupLayout(c);
c.setLayout(gl);
gl.setAutoCreateContainerGaps(true);
gl.setAutoCreateGaps(true);
firstName = new JTextField(20);
lastName = new JTextField(20);
addName = new JButton("Add name");
// MAGIC STARTS *********************
addName.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
onButtonClick();
}
});
// MAGIC ENDS ***********************
nameModel = new NameModel();
nameTable = new JTable(nameModel);
JScrollPane nameTableScroll = new JScrollPane(nameTable);
gl.setHorizontalGroup(
gl.createParallelGroup()
.addGroup(
gl.createSequentialGroup()
.addComponent(firstName)
.addComponent(lastName)
.addComponent(addName)
)
.addComponent(nameTableScroll)
);
gl.setVerticalGroup(
gl.createSequentialGroup()
.addGroup(
gl.createParallelGroup(Alignment.BASELINE)
.addComponent(firstName)
.addComponent(lastName)
.addComponent(addName)
)
.addComponent(nameTableScroll)
);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
pack();
setLocationRelativeTo(null);
}
private void onButtonClick() {
NamePair np = new NamePair();
np.firstName = firstName.getText();
np.lastName = lastName.getText();
nameModel.names.add(np);
nameModel.fireTableDataChanged();
}
/**
* @param args
*/
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new NameGUI().setVisible(true);
}
});
}
}
- 1. Событие с нажатием кнопки «Радио»
- 2. Сообщайте событие с нажатием кнопки с гнездами
- 3. Как сделать кнопки одним нажатием кнопки событие
- 4. Событие с нажатием кнопки продолжает стрелять
- 5. Событие с нажатием кнопки не активировано
- 6. Событие с нажатием кнопки «Радио» не срабатывает
- 7. Событие с нажатием кнопки «Радио» не работает
- 8. Как вызвать событие datagridview одним нажатием кнопки?
- 9. Проблема с нажатием кнопки JQery
- 10. одним нажатием кнопки-событие для нескольких функций
- 11. Как создать событие нажатием кнопки C#?
- 12. Отключить/остановить событие нажатием кнопки HOME AOSP
- 13. Как перехватить событие с нажатием кнопки F5 с помощью jQuery?
- 14. Сигнал с нажатием кнопки QWebEngineView
- 15. VLOOKUP с нажатием кнопки
- 16. Прокрутка с нажатием кнопки
- 17. selenium webdriver имеет проблемы с нажатием кнопки/нажатием кнопки | bootstrap
- 18. Как вызвать событие крана для элемента с нажатием кнопки = 'node_action'?
- 19. Событие с нажатием кнопки не запускается после потерянного события фокуса
- 20. Событие с нажатием кнопки мыши переходит на контроллер вместо javascript
- 21. Событие с нажатием кнопки не запускается внутри панели обновления ASP.NET
- 22. Событие с нажатием кнопки не запускается на сервере
- 23. получить событие события с нажатием кнопки в ckeditor
- 24. Swing: текстовое поле потерянное событие против события с нажатием кнопки
- 25. Событие с нажатием кнопки не запускается при первом нажатии
- 26. Событие с нажатием кнопки на элементе, не работающем в IE8
- 27. Закрытие приложения нажатием кнопки?
- 28. прилагается событие слушателя не работает
- 29. Событие прилагается с on не развязывает
- 30. Кнопка «Проблемы с нажатием кнопки»
Что вы получили до сих пор? – seth
Еще раз вы задаете вопрос, который рассматривается в учебнике Swing. Вам была предоставлена ссылка на этот учебник, посвященный многочисленным темнам. Начните читать учебник и опубликуйте свой код, когда у вас возникнут проблемы. Я для одного не знаю, связана ли ваша проблема с a) нажмите кнопку, b) получив текст из текстовых полей, c) добавив строку в таблицу. Не ожидайте, что мы догадаемся, что вы просите, и не ожидайте, что люди будут постоянно ложкой кормить вас ответом. – camickr