小编Jus*_*s S的帖子

经常使用instanceof是好习惯吗?

场景.我正在写与游戏相关的代码.在那个游戏中Player(它也是一个类)有一个列表Item.还有其他类型的项继承Item,例如ContainerItem,DurableItemWeaponItem.

显然,对我来说这是非常方便的List<Item>.但是当我获得玩家物品时,我唯一的方法是通过使用instanceof关键字来区分什么类型的物品.我敢肯定,我已经读过,依赖它是不好的做法.

在这种情况下可以使用它吗?或者我应该重新考虑我的所有结构?

java instanceof hierarchy

11
推荐指数
2
解决办法
5373
查看次数

Xamarin 选择 TargetFramework 和 MinimumAndroidVersion

我正在开发 Xamarin Forms 应用程序(目前仅支持 Android)。默认设置将 TargetFramework 设置为 7.1。此项目的最低 android 版本必须为 7.0。这会产生警告:

Xamarin.Forms.Platform.Android.dll (vv7.1) 的 $(TargetFrameworkVersion) 大于项目 (v7.0) 的 $(TargetFrameworkVersion)。您需要为您的项目增加 $(TargetFrameworkVersion)。对我来说,为您将使用的版本进行编译似乎很自然。不是这样吗?

本文建议始终使用最新版本进行编译。为我的应用程序编译最新版本有什么好处吗? https://docs.microsoft.com/en-us/xamarin/android/app-fundamentals/android-api-levels?tabs=vswin#framework

android xamarin.android xamarin xamarin.forms

6
推荐指数
1
解决办法
1万
查看次数

Java扫描程序计数文件中的行

我有一个问题,我试图创建一个应用程序,计算文件中符号的所有出现...扫描方法"nextLine"停在一个空行...有没有办法让它继续前进,直到它到达真正的文件结束?

简而言之:我可以在文件中获得REAL行吗?

先感谢您!

java java.util.scanner

4
推荐指数
1
解决办法
3万
查看次数

GridBagLayout不会填满所有空间

我有一个面板,用作卡片布局的一部分.小组使用GridBagLayout.我添加了两个组件:JTextArea填充设置为BOTH JTextField,填充设置为水平.它们只占据了水平空间.

        // Chat card setup
        JPanel chatCard = new JPanel(new GridBagLayout());
        gc = new GridBagConstraints();

        gc.gridx = 0;
        gc.gridy = 0;
        gc.fill = GridBagConstraints.BOTH;
        gc.weightx = 2;
        chatArea = new JTextArea();
        chatCard.add(chatArea,gc);

        gc.gridx = 0;
        gc.gridy = 1;
        gc.fill = GridBagConstraints.HORIZONTAL;
        gc.anchor = GridBagConstraints.PAGE_END;
        gc.weightx = 2;
        JTextField msgField = new JTextField();
        msgField.setActionCommand("SendText");
        msgField.addActionListener(listener);
        chatCard.add(msgField, gc);
Run Code Online (Sandbox Code Playgroud)

它目前看起来像这样

面板与GridBagLayout

java swing layout-manager gridbaglayout

2
推荐指数
1
解决办法
2010
查看次数

Java卡布局.多卡中的一个组件

一个组件(例如a JLabel)可以使用多个卡CardLayout吗?

目前,该组件似乎只出现在它添加到的最后一张卡片上.

如果有办法做到这一点,我应该吗?这是不好的做法吗?或者有其他选择吗?

java swing awt cardlayout

2
推荐指数
1
解决办法
401
查看次数

顶部没有绘制矩形

我有一个扩展JPanel的类"Map".我将它添加到扩展JFrame的类中.

public void paintComponent(Graphics g) {
        super.paintComponent(g);
        int width = Math.abs(startX - endX);
        int height= Math.abs(startY - endY);
        g.setColor(Color.RED);
        g.fillRect(startX, startY, width, height);
    }
Run Code Online (Sandbox Code Playgroud)

我的"Map"类还包含一个带有图像的标签.如果图像小于窗口,当我绘制一个矩形时,可以看到它.简而言之,它属于标签.

java swing paintcomponent

1
推荐指数
1
解决办法
127
查看次数

Java组件对齐到左上角

我想将我的两个组件对齐到窗口的左上角。

import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import javax.swing.border.EmptyBorder;

public class MainFrame extends JFrame {
    public MainFrame() {
    JPanel mainPanel = new JPanel(new BorderLayout());
    JPanel gridbagPanel = new JPanel();
    this.setLayout(new BorderLayout());

    gridbagPanel.setLayout(new GridBagLayout());
    GridBagConstraints gc = new GridBagConstraints();

    JLabel nameLabel = new JLabel(player.getName());
    nameLabel.setHorizontalAlignment(SwingConstants.CENTER);
    nameLabel.setFont(new Font("Serif",Font.PLAIN,24));
    mainPanel.add(nameLabel, BorderLayout.NORTH);

    JLabel money = new JLabel("Pinigai: "+new Integer(player.getMoney()).toString());
    gc.gridx = 0;
    gc.gridy = 0;
    gc.anchor = GridBagConstraints.PAGE_START;
    gc.insets = new Insets(2,0,0,2); …
Run Code Online (Sandbox Code Playgroud)

java layout swing jcomponent

0
推荐指数
1
解决办法
9271
查看次数