我需要加载和显示一些图像在javafx运行时,我设法加载其中一个,我创建ImageView传递该图像作为参数,但然后图像不显示。我发现图像是可点击的(它识别鼠标事件),但我不能显示它
控制器
public class fx extends Application {
@FXML
// The reference of inputText will be injected by the FXML loader
private TextField inputUsername;
@FXML
private TextField inputUrl;
@FXML
private ComboBox inputConnectionType;
@FXML
private ComboBox inputColour;
@FXML
private Button submit;
@FXML
private ImageView imageView;
@FXML
private AnchorPane anchor;
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage stage) throws Exception {
Image image = new Image("/AD_weapons_IT_0211.png");
imageView = new ImageView(image);
Parent root = FXMLLoader.load(getClass().getResource("/fxml/form.fxml"));
Scene scene = new Scene(root);
stage.setWidth(415);
stage.setHeight(200);
stage.setScene(scene);
stage.sizeToScene();
stage.show();
}
public void submit()
{
System.out.println(inputUsername.getText()+"\n");
System.out.println(inputColour.getValue().toString()+"\n");
System.out.println(inputConnectionType.getValue().toString()+"\n");
System.out.println(inputUrl.getText()+"\n");
}
public void press()
{
System.out.println("CLICKED");
}
}
fxml文件
<?xml version="1.0" encoding="UTF-8"?>
<?language JavaScript?>
<?import javafx.scene.control.TitledPane?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.image.Image?>
<TitledPane animated="false" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" text="untitled" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8.0.172-ea" fx:controller="provaProj.fx">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
<children>
<ImageView fx:id = "imageView" fitHeight="150.0" fitWidth="200.0" layoutX="199.0" layoutY="112.0" onMousePressed="#press" pickOnBounds="true" preserveRatio="false" />
</children></AnchorPane>
</content>
</TitledPane>
对于fxml应用程序,您应该有2个类和1个fxml文件:
主要类别:
public class TestApplication extends Application {
@Override
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("FXMLTest.fxml"));
stage.setTitle("Application");
Scene scene = new Scene(root);
stage.setWidth(415);
stage.setHeight(200);
stage.setScene(scene);
stage.sizeToScene();
stage.show();
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
您的fxml文件和控制器类:
public class Controller {
@FXML
// The reference of inputText will be injected by the FXML loader
private TextField inputUsername;
@FXML
private TextField inputUrl;
@FXML
private ComboBox inputConnectionType;
@FXML
private ComboBox inputColour;
@FXML
private Button submit;
@FXML
private ImageView imageView;
@FXML
private AnchorPane anchor;
public void submit()
{
System.out.println(inputUsername.getText()+"\n");
System.out.println(inputColour.getValue().toString()+"\n");
System.out.println(inputConnectionType.getValue().toString()+"\n");
System.out.println(inputUrl.getText()+"\n");
}
@FXML
public void press()
{
System.out.println("CLICKED");
Image img = new Image("yourURL");
imageView.setImage(img);
}
}
然后,您可以在Controller-Class中更改您的图像...
问题内容: 我有一个带有一些自定义部分的ListView。每个部分都有自己的标题视图。我希望列表中的元素是可单击的,但是显然不希望节标题是可单击的。因此,在xml中添加了节标题。 调试时,我注意到section标头仍在响应我的。然后,我尝试在XML中进行设置。确实,部分标题视图不再响应点击… 那么这是怎么回事?为什么设置= 告诉它 不可 点击?我在这里误会什么吗?这是我的XML: 如果我将其设置在
问题内容: 如何在Java中创建JButton,使其不可见但可单击? 使按钮不可见但不可单击,是否有任何方法使按钮不可见但可单击? 我试着做: 但这也不起作用。我要这样做是因为我想有一个带有图像的按钮,如果将不可见的JButton放在图像上,则单击图像时该按钮将响应,即不可见按钮。 问题答案: 我认为您的意思是透明的,而不是看不见的。 这将使单击的按钮不可见,即透明: 这可以回答您的问题,但是如果
问题内容: 如本教程所述,我在GridView中显示了图像。我希望能够单击单个图像并执行其他事件,所以我需要知道单击了哪个图像。 我必须在ImageAdapter类中添加imageView.onKeyDown(keyCode,event)吗?这是当前存在的代码: 如何显示点击的图片?如何创建适当的处理程序? 问题答案: 对于GridView,可以使用setOnItemClickListener方法
每当我运行它时,它只会显示图像应该位于的空间下的按钮,但即使图像空间在那里,也没有图像。 这是关于intelliJ的,我尝试了很多解决方案,但都不起作用。 代码的第一部分 代码的第二部分 文件夹
我正在设计一个Gridview,其中每个项目都有一个TextView和ImageView。我试图找到关于如何使ImageView可点击以及GridView项目本身(两者都会触发不同的方法())的教程(逐步更新和清晰的教程)。 这就是我目前掌握的: Activity.java GV适配器.java 结果: 当Item1(Textview)被点击时,它应该点击整个Item并触发GridView的OnI
我正在尝试制作一个JFrame,其中包含一个JGroup,不可见但保持JGroup可见。我怎么才能做到这一点?提前感谢!