My problem is my compiler isnt recognising getSelectedIndexes. I've got all the awt and swing libraries imported and PartyList is a Jlist thats been set up and works, can anyone give me any advice, thanks
else if(e.getSource() == jButton9) // if play button is pressed
{
int []selectedIndexes = PartyList.getSelectedIndexes();
drawApp(4);
}
You probably need PartyList partyList = new PartyList();
getSelectedIndexes is a instance level method. You can't call it without instantiating the class...
You want JList's getSelectedIndices, not getSelectedIndexes.
Related
I am in the process of self-training on the subject of graphic JavaFX
My goal is to be able to place an X in the corresponding box
I found several tutorials that explain how to write a partial or full row but only one field and depending on the column / row value ... I can't do it, I need help from the community to m 'open my eyes, so run my hoop lol
Thx in advance
Have a nice day/evening/night/morning
With GridPane, i found what i probably need :)
#FXML
protected void shootOnGrid(ActionEvent actionEvent) {
if (column.getText().isEmpty() || line.getText().isEmpty() ){
resultShoot.setText("There is some information missing");
} else {
resultShoot.setText(column.getText()+line.getText());
grid.add(new Text(line.getText()), 0,0);
}
}
Now, i need to work with thoses property :)
If i can name the Colomn and row...etc
I am having a weird problem on my Vaadin app. I have a screen with two separate unbuffered grids.
The user is able to edit the data in those two grids and then click a "Save" button to save the changes made.
My problem is that I want to close the editors when the user clicks on "Save".
I tried the following code:
private void closeEditors() {
if (tab1.getEditor().isOpen()) {
tab1.getEditor().closeEditor();
}
if (tab2.getEditor().isOpen()) {
tab2.getEditor().closeEditor();
}
}
I don't understand why this code doesn't work, editors stay opened. I also tried calling the cancel method but in vain.
I am using Vaadin 14.
I am posting this here with not much hope of finding an answer, this problem seems really precise.
But with any luck, maybe someone has experienced a similar issue ?
Maybe there is another glitchier way of forcing my editors to close ?
Any suggestion would be of great help, thanks in advance for anything you could think of !
EDIT: a little more code
This is the grids:
private Grid<Map<String, String>> tab1;
private Grid<Map<String, List<String>>> tab2;
This is the save function
public void saveData() {
saveDataFromTab1();
saveDataFromTab2();
try {
ServicesProxyImpl.getInstance().updateInBD(someObject);
saveButton.setEnabled(false);
cancelButton.setEnabled(false);
closeEditors();
Dialog dialog = VaadinComponentUtils.generateDialog(Constantes.MSG_SAVE_OK);
dialog.open();
} catch (JAXBException e) {
e.printStackTrace();
Dialog dialog = VaadinComponentUtils.generateDialog(Constantes.MSG_SAVE_KO);
dialog.open();
}
}
And this is the save button:
public Button getSaveButton() {
Button saveButton= VaadinComponentUtils.generateButton("Save",
VaadinIcon.CHECK_CIRCLE_O, null, true);
saveButton.setEnabled(false);
saveButton.addClickListener(event -> saveData());
return saveButton;
}
EDIT 2:
I have noticed something, when I click on an element of one of my two grids, I want the editor to open for that specific element and I want to close the editor on the other grid (the one not concerned by the modification). This works ! My grids behave like I want. It seems I am only losing control over my editors after I have actually modified one of the cells and clicked on my save button.
The isOpen function returns false on both grids after I call my closeEditors function, so it seems the grid thinks its editor is closed but it is still opened on my UI.
EDIT 3: I have found a workaround
Well, I have solved my problem by adding a close event listener on both my grids and calling resetGrids when the close event is fired. This function simply removes the grids from the UI, fetches the data to be displayed and then adds the grid one again, both editors being closed. I guess it solves my problem but I would have wanted to understand what was going on...
private void closeEditors() {
tableauHoraires.getEditor().addCloseListener(e -> resetGrids());
tableauRamassagePorteAPorte.getEditor().addCloseListener(e -> resetGrids());
if (tableauRamassagePorteAPorte.getEditor().isOpen()) {
tableauRamassagePorteAPorte.getEditor().closeEditor();
}
if (tableauHoraires.getEditor().isOpen()) {
tableauHoraires.getEditor().closeEditor();
tableauHoraires.getEditor().refresh();
}
}
Make sure that the objects in your grid have proper equals and hashcode methods and that the field(s) being edited do not influence them.
I use the PK from the database.
I'm working on a school project, but I'm having a hard time. I need to check if a combobox is selected or not in JavaFX, but I can't find the solution. I hope someone can help me out.
if (View.getPriority().getItems().size() <= 0) {
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setContentText("test");
alert.show();
This is my code. I'm trying to access my combobox from a getter in my View-class.
If you have a reference to it:
boolean isSelected = !myComboBox.getSelectionModel().isEmpty();
Without having seen your code, I assume you are looking for combobox.isShowing()
I have in the text box that by choosing the combo box Binds respectively the text field with the specified data. The point is that after the first binding process, you can not remove the effect. I choose binding logins, this Binds me a text box with logins. Then I want Bind the e-mail, then I develop two lists, login and e-mail.
#FXML
public void setToSearch() {
if(comboSettingsSearch.getSelectionModel().getSelectedIndex() == 1)
TextFields.bindAutoCompletion(textSearchPerson, Database.loadLogins());
if(comboSettingsSearch.getSelectionModel().getSelectedIndex() == 5)
TextFields.bindAutoCompletion(textSearchPerson, Database.loadEmails());
}
enter image description here
Underneath logins, and on top of e-mail. Anyone know how to remove this effect?
If you do it like this,
#FXML
public void setToSearch() {
if(comboSettingsSearch.getSelectionModel().getSelectedIndex() == 1)
AutoCompletionBinding<String> acbLogin = TextFields.bindAutoCompletion(textSearchPerson, Database.loadLogins());
if(comboSettingsSearch.getSelectionModel().getSelectedIndex() == 5)
AutoCompletionBinding<String> acbEmail = TextFields.bindAutoCompletion(textSearchPerson, Database.loadEmails());
}
you can dispose the binding with
acbLogin.dispose();
acbEmail.dispose();
as far as I can tell from the HelloAutoComplete-example and the javadocs.
This is a late response to this post, however, I see that it apparently didn't work because it is not checked. It also didn't work for me but two weeks later I discovered why.
The proposed declaration and initialization above does not work if you include the type as part of the declaration. You need to remove the type from the declaration and then the .dispose() method will work.
This doesn't work:
AutoCompletionBinding<String> acbLogin = TextFields.bindAutoCompletion(textSearchPerson, Database.loadLogins());
This does:
AutoCompletionBinding acbLogin = TextFields.bindAutoCompletion(textSearchPerson, Database.loadLogins());
AutoCompletionBinding acb = TextFields.bindAutoCompletion(txtfield,arraylistobj);
acb=null;
I was looking for the solution, but the problem still remains. I'm designing a GUI and trying to change the variable by clicking a button:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
var=(String)jComboBox2.getSelectedItem();
}
Then i want to use it to change label in another tab, which already exist, but it always says null (value of the variable is not updated even though it is defined in the most-upper class.
I was trying with:
jLabel4.revalidate();
jLabel4.repaint();
but it also fails.
Ok, I will explain it better :D I have a button defined as follows:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt)
{
var=(String)jComboBox2.getSelectedItem();
jLabel4.revalidate(); //actually makes no difference if i delete this 2 lines...
jLabel4.repaint(); }
And I want to use this variable in another tab (JPanel):
jLabel4.setText("Studenci z przedmiotu " + var);
but the variable var always remains null as defined in the mother class (this is quite logical, because all components are initiated at the start-up, before pressing the button...). But do you know why functions repaint and revalidate do not work? How can I substitute them? sry for not posting the whole code, but i think it will be too much spam ;d
if you want change a Text variable use setText() Method in gui
For Example:
jlable4.setText("new text");
and put it in your action like this:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
jlable4.setText("new text");
}
if that was your question,Enjoy!if not give me a peace of code and tell me what is error message and i'be help you.