Javafx - How to check if a combobox is selected or not - java

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()

Related

How to write in a specific spot in TableView with JavaFX

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

Vaadin unbuffered grids won't close

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.

Disabling a button in javaFX and enable it again

Hi guy I just started learn some JavaFX and I made a simple product TableView program which you can add and delete items. the items include name price and quantity.
I tried to prevent a bug so I did everytime the name\price\quantity fields are empty the add button will be disabled.
addButton = new Button("Add");
if(name.getText().isEmpty()&& price.getText().isEmpty() && quantity.getText().isEmpty()) {
addButton.setDisable(true);
} else {
addButton.setDisable(false);
addButton.setOnAction(e-> addButtonClicked());
}
The button is indeed disable but when I input some data to the field it remain disable.
I would like if someone can help me figure it out.
srry for the broken english ;)
Ok I fixed this, if someone got the same issue this is the solution :
addButton = new Button("Add");
addButton.disableProperty().bind(
name.textProperty().isEmpty()
.or(price.textProperty().isEmpty())
.or(quantity.textProperty().isEmpty())
);

How to hide and unhide box from checkbox

I'm a student of android developer.
I need to make a project and I've ran into a problem.
basically the problem is that i need to make the box of a checkBox disappear and only after pushing a specific button, the box will appear and be clickable.
from my searches i've found that when i write:
myCheckBox.setButtonDrawable(new ColorDrawable(Color.TRANSPARENT));
it will disappear and it's good but couldn't find the way to make it appear after that..
thanks a lot. :)
You can achieve that my making the view disappear either by using
myCheckBox.setVisibility(View.GONE);
(OR)
myCheckBox.setVisibility(View.INVISIBLE);
And again you can make it to appear by
myCheckBox.setVisibility(View.VISIBLE);
Hope this is helpful:)
You need to use
yourCheckBox.setVisibility(View.GONE);
to make that visible again,
yourCheckBox.setVisibility(View.VISIBLE);
You can get the currently assigned drawable with getButtonDrawable() and store it in a field, for example:
class Foo {
private Drawable oldDrawable;
private CheckBox myCheckBox;
public void hideCheckbox() {
oldDrawable = myCheckBox.getButtonDrawable();
myCheckBox.setButtonDrawable(new ColorDrawable(Color.TRANSPARENT));
}
public void showCheckbox() {
myCheckBox.setButtonDrawable(oldDrawable);
}
}

Java - GetSelectedIndexes problem

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.

Categories