场景.我正在写与游戏相关的代码.在那个游戏中Player(它也是一个类)有一个列表Item.还有其他类型的项继承Item,例如ContainerItem,DurableItem或WeaponItem.
显然,对我来说这是非常方便的List<Item>.但是当我获得玩家物品时,我唯一的方法是通过使用instanceof关键字来区分什么类型的物品.我敢肯定,我已经读过,依赖它是不好的做法.
在这种情况下可以使用它吗?或者我应该重新考虑我的所有结构?
我正在开发 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
我有一个问题,我试图创建一个应用程序,计算文件中符号的所有出现...扫描方法"nextLine"停在一个空行...有没有办法让它继续前进,直到它到达真正的文件结束?
简而言之:我可以在文件中获得REAL行吗?
先感谢您!
我有一个面板,用作卡片布局的一部分.小组使用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)
它目前看起来像这样

一个组件(例如a JLabel)可以使用多个卡CardLayout吗?
目前,该组件似乎只出现在它添加到的最后一张卡片上.
如果有办法做到这一点,我应该吗?这是不好的做法吗?或者有其他选择吗?
我有一个扩展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"类还包含一个带有图像的标签.如果图像小于窗口,当我绘制一个矩形时,可以看到它.简而言之,它属于标签.
我想将我的两个组件对齐到窗口的左上角。
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 ×6
swing ×4
android ×1
awt ×1
cardlayout ×1
hierarchy ×1
instanceof ×1
jcomponent ×1
layout ×1
xamarin ×1