Событие мыши - Java

Узнай цену своей работы

Формулировка задачи:

Добрый день всем. Ребята ответе на вопрос. Создаю динамически Labelы как сделать чтобы при наведении на них мишью они меняли цвет. Заранее спасибо. Вот мой код
    private void ShowPrice(){
        sp=new Pane();
        sp.setLayoutX(8);
        sp.setLayoutY(60);
        sp.setPrefSize(550,700);
        sp.setStyle("-fx-border-width:2pt;-fx-border-color:olive;-fx-background-color:lightgrey;");
        anhorPanePrice.getChildren().add(sp);
        for(int i=0;i<6;i++){
            for(int j=0;j<pr.getParsingFirm().size();j++){
            Label mylabel=new Label();
            mylabel.setLayoutY(40+j*30);
            mylabel.setPrefSize(200,30);
            mylabel.getOnMouseClicked();
                switch(i){
                case 0:
                        mylabel.setStyle("-fx-font:bold italic 10pt Georgia;-fx-text-fill:#000066;");
                        mylabel.setLayoutX(10);
                    if(j==0){
                        mylabel.setLayoutY(10);
                        mylabel.setText("Название фирм");
                    }else{
                        mylabel.setText(pr.getParsingFirm().get(j).toString());
                    }
                        break;
                case 1: 
                        mylabel.setStyle("-fx-font:bold italic 10pt Georgia;-fx-text-fill:#a4aa16;");
                        mylabel.setLayoutX(210);   
                    if(j==0){
                        mylabel.setLayoutY(10);
                        mylabel.setText("A-92");
                    }else{         
                        mylabel.setText(pr.getParsingA92().get(j).toString());
                    }
                        break;  
                case 2:
                        mylabel.setStyle("-fx-font:bold italic 10pt Georgia;-fx-text-fill:GREEN;");
                        mylabel.setLayoutX(270);
                    if(j==0){
                        mylabel.setLayoutY(10);
                        mylabel.setText("A-95");
                    }else{            
                        mylabel.setText(pr.getParsingA95().get(j).toString());
                    }
                        break;  
                case 3: mylabel.setStyle("-fx-font:bold italic 10pt Georgia;-fx-text-fill:RED;");
                        mylabel.setLayoutX(330);            
                    if(j==0){
                        mylabel.setLayoutY(10);
                        mylabel.setText("A-95+");
                    }else{ 
                        mylabel.setText(pr.getParsingA95P().get(j).toString());
                    }
                        break;    
                case 4: mylabel.setStyle("-fx-font:bold italic 10pt Georgia;-fx-text-fill:BLACK;");
                        mylabel.setLayoutX(390);            
                   if(j==0){
                        mylabel.setLayoutY(10);
                        mylabel.setText("ДТ");
                    }else{ 
                        mylabel.setText(pr.getParsingDT().get(j).toString());
                   }
                        break;    
                case 5: mylabel.setStyle("-fx-font:bold italic 10pt Georgia;-fx-text-fill:#7d125a;");
                        mylabel.setLayoutX(450);            
                    if(j==0){
                        mylabel.setLayoutY(10);
                        mylabel.setText("Газ");
                    }else{ 
                        mylabel.setText(pr.getParsingGas().get(j).toString());
                    }
                        break;
            }
            sp.getChildren().add(mylabel);
        }
        }
    }

Решение задачи: «Событие мыши»

textual
Листинг программы
package price1;
 
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javafx.fxml.FXML;
import javafx.scene.control.*;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.Pane;
import javafx.scene.web.WebView;
 import javax.script.*;
/**
 *
 * @author Миха
 */
public class FXMLDocumentController implements  MouseListener {
    
    @FXML
    private Label label;
    
    @FXML
    private AnchorPane anhorPanePrice;
    
    
    @FXML
    private ProgressBar prog;
    
    @FXML
    private ComboBox comboboxFirm;
    
    @FXML
    private ComboBox comboboxCountry;
    @FXML
    private AnchorPane anchorPane;
    private Parsing_price pr;
    private  Pane sp;
    private WebView wv;
    private Label mylabel;
    
    
    
    
    
   @FXML
   private void handleComboboxTextChanget(){
       String country=comboboxCountry.getValue().toString();
         pr=new Parsing_price();
        pr.Parsing_Country(country);
        pr.Parsing_Firm();
        pr.Parsing_Oil();
        pr.Parsing_City();
    ShowPrice(); 
    AddComboboxFirm();
        try {
            WebMap();
        } catch (ScriptException | NoSuchMethodException ex) {
        }
        Price_DataBase db=new Price_DataBase();
       
   }
 
    private void AddComboboxFirm(){
        comboboxFirm.getItems().clear();
        for(int i=1;i<pr.getParsingFirm().size();i++){
       comboboxFirm.getItems().addAll(pr.getParsingFirm().get(i));
    }
    }
    
    @FXML
    private void handleComboboxValueFirm(){
        
    }
 
    private void ShowPrice(){
        sp=new Pane();
        sp.setLayoutX(8);
        sp.setLayoutY(60);
        sp.setPrefSize(550,700);
        sp.setStyle("-fx-border-width:2pt;-fx-border-color:olive;-fx-background-color:lightgrey;");
        anhorPanePrice.getChildren().add(sp);        
                
        for(int i=0;i<6;i++){
            for(int j=0;j<pr.getParsingFirm().size();j++){
            mylabel=new Label();
            mylabel.setLayoutY(40+j*30);
            mylabel.setPrefSize(200,30);
//           mylabel.addMouseListener(this);
                switch(i){
                case 0:
                        mylabel.setStyle("-fx-font:bold italic 10pt Georgia;-fx-text-fill:#000066;");
                        mylabel.setLayoutX(10);
                      
                    if(j==0){
                        mylabel.setLayoutY(10);
                        mylabel.setText("Название фирм");
                    }else{
                        mylabel.setText(pr.getParsingFirm().get(j).toString());
                    }
                        break;
                case 1: 
                        mylabel.setStyle("-fx-font:bold italic 10pt Georgia;-fx-text-fill:#a4aa16;");
                        mylabel.setLayoutX(210);   
                    if(j==0){
                        mylabel.setLayoutY(10);
                        mylabel.setText("A-92");
                    }else{         
                        mylabel.setText(pr.getParsingA92().get(j).toString());
                    }
                        break;  
                case 2:
                        mylabel.setStyle("-fx-font:bold italic 10pt Georgia;-fx-text-fill:GREEN;");
                        mylabel.setLayoutX(270);
                    if(j==0){
                        mylabel.setLayoutY(10);
                        mylabel.setText("A-95");
                    }else{            
                        mylabel.setText(pr.getParsingA95().get(j).toString());
                    }
                        break;  
                case 3: mylabel.setStyle("-fx-font:bold italic 10pt Georgia;-fx-text-fill:RED;");
                        mylabel.setLayoutX(330);            
                    if(j==0){
                        mylabel.setLayoutY(10);
                        mylabel.setText("A-95+");
                    }else{ 
                        mylabel.setText(pr.getParsingA95P().get(j).toString());
                    }
                        break;    
                case 4: mylabel.setStyle("-fx-font:bold italic 10pt Georgia;-fx-text-fill:BLACK;");
                        mylabel.setLayoutX(390);            
                   if(j==0){
                        mylabel.setLayoutY(10);
                        mylabel.setText("ДТ");
                    }else{ 
                        mylabel.setText(pr.getParsingDT().get(j).toString());
                   }
                        break;    
                case 5: mylabel.setStyle("-fx-font:bold italic 10pt Georgia;-fx-text-fill:#7d125a;");
                        mylabel.setLayoutX(450);            
                    if(j==0){
                        mylabel.setLayoutY(10);
                        mylabel.setText("Газ");
                    }else{ 
                        mylabel.setText(pr.getParsingGas().get(j).toString());
                    }
                        break;
            }
            sp.getChildren().add(mylabel);
        }
        }
    }
     
    private void WebMap() throws ScriptException, NoSuchMethodException{
          System.out.println("Hello");
        wv=new WebView();
        wv.setLayoutX(580);
        wv.setLayoutY(60);
        wv.setPrefSize(700,700);
        wv.setStyle("-fx-border-width:2pt;-fx-border-color:olive;-fx-background-color:lightgrey;");
        wv.getEngine().load("file:///E:/Java/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%8B/Price_oil/MyMap.html");
        
        anhorPanePrice.getChildren().add(wv);
        ScriptEngineManager manager = new ScriptEngineManager();
        ScriptEngine engine = manager.getEngineByName("JavaScript");
 
        // JavaScript code in a String
        String script = "function hello(name) { print('Hello, ' + name); }";
        // evaluate script
        engine.eval(script);
 
        // javax.script.Invocable is an optional interface.
        // Check whether your script engine implements or not!
        // Note that the JavaScript engine implements Invocable interface.
        Invocable inv = (Invocable) engine;
 
        // invoke the global function named "hello"
        inv.invokeFunction("hello", "Scripting!!" );
        
        
    }
 
    @Override
    public void mouseEntered(MouseEvent e) {
           if (e.getSource().equals(mylabel)) {
            mylabel.setStyle("-fx-font:bold italic 10pt Georgia;-fx-text-fill:RED;");
        }
    }
 
    @Override
    public void mouseExited(MouseEvent e) {
//        for(int i=0;i<pr.getParsingFirm().size();i++)
            if (e.getSource().equals(mylabel)) {
            mylabel.setStyle("-fx-font:bold italic 10pt Georgia;-fx-text-fill:BLUE;");
            }
    }
 
    @Override
    public void mouseClicked(MouseEvent e) {
    }
 
    @Override
    public void mousePressed(MouseEvent e) {
    }
 
    @Override
    public void mouseReleased(MouseEvent e) {
    }
 
 
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.5 из 5