Группировка предметов очень проста с помощью Xamarin Forms. Это сообщение в блоге показывает вам, как настроить свой код, чтобы вы могли создать сгруппированный ListView: http://motzcod.es/post/94643411707/enhancing-xamarinforms-listview-with-grouping
Ответ будет варьироваться немного в зависимости от того, используют ли приложение или апплет AWT или Swing.
пј €Basically, классами, которые запускаются с J
такой как JApplet
и JFrame
, является Swing, и Applet
, и Frame
AWT.)
В любом случае, основные шаги были бы:
Image
объект. Component
, Вы хотите потянуть знания в. Шаг 1. , Загружающий изображение, может быть или при помощи Toolkit
класс или ImageIO
класс.
Toolkit.createImage
метод может использоваться для загрузки Image
от местоположения, указанного в String
:
Image img = Toolkit.getDefaultToolkit().createImage("background.jpg");
Точно так же ImageIO
может использоваться:
Image img = ImageIO.read(new File("background.jpg");
Шаг 2. метод рисования для Component
, который должен получить фон, должен будет быть переопределен и краска Image
на компонент.
Для AWT, метод для переопределения paint
метод и использование drawImage
метод Graphics
объект, который вручен в paint
метод:
public void paint(Graphics g)
{
// Draw the previously loaded image to Component.
g.drawImage(img, 0, 0, null);
// Draw sprites, and other things.
// ....
}
Для Swing, метод для переопределения paintComponent
метод JComponent
, и потяните Image
как с тем, что было сделано в AWT.
public void paintComponent(Graphics g)
{
// Draw the previously loaded image to Component.
g.drawImage(img, 0, 0, null);
// Draw sprites, and other things.
// ....
}
Простой Пример Компонента
Вот Panel
, который загружает файл изображения при инстанцировании и рисовании того изображения на себе:
class BackgroundPanel extends Panel
{
// The Image to store the background image in.
Image img;
public BackgroundPanel()
{
// Loads the background image and stores in img object.
img = Toolkit.getDefaultToolkit().createImage("background.jpg");
}
public void paint(Graphics g)
{
// Draws the img to the BackgroundPanel.
g.drawImage(img, 0, 0, null);
}
}
Для получения дополнительной информации о рисовании:
Во-первых создайте новый класс, который расширяется WorldView
класс. Я назвал свой новый класс Background
. Таким образом в этом новом импорте класса все пакеты Java Вам будет нужно для переопределения paintBackground
метод. Это должно быть:
import city.soi.platform.*;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.ImageObserver;
import javax.swing.ImageIcon;
import java.awt.geom.AffineTransform;
Затем после имени класса удостоверяются, что, поскольку оно говорит, расширяется WorldView
. Что-то вроде этого:
public class Background extends WorldView
Тогда объявляют игру переменных типа Game
и переменную изображения типа Image
что-то вроде этого:
private Game game;
private Image image;
Тогда в конструкторе этого класса удостоверяются, что игра типа Game
находится в подписи конструктора и что в вызове к [1 114] необходимо будет инициализировать эти WorldView
, инициализировать игру и инициализировать переменные изображения, что-то вроде этого:
super(game.getCurrentLevel().getWorld(), game.getWidth(), game.getHeight());
this.game = game;
bg = (new ImageIcon("lol.png")).getImage();
Тогда Вы просто переопределяете paintBackground
метод точно таким же образом, как Вы сделали при переопределении paint
метод в Player
класс. Точно так же, как это:
public void paintBackground(Graphics2D g)
{
float x = getX();
float y = getY();
AffineTransform transform = AffineTransform.getTranslateInstance(x,y);
g.drawImage(bg, transform, game.getView());
}
Теперь наконец необходимо объявить ссылку уровня класса на новый класс, который Вы просто сделали в Game
класс, и инициализируйте это в Game
конструктор, что-то вроде этого:
private Background image;
And in the Game constructor:
image = new Background(this);
Наконец все, что необходимо сделать, добавляют предпосылки к кадру! Это - вещь, я уверен, что мы все отсутствовали. Чтобы сделать это, необходимо сделать что-то вроде этого после того, как переменная frame
была объявлена:
frame.add(image);
Удостоверяются, что Вы добавляете этот код незадолго до frame.pack();
. Также удостоверьтесь, что Вы используете фоновое изображение, которое не является слишком большим!
Теперь вот именно! Я заметил, что игровые механизмы могут обработать JPEG и форматы изображения PNG, но могли также поддерживать других. Даже при том, что это помогает включать фоновое изображение в Вашу игру, это не прекрасно! Поскольку, как только Вы переходите к следующему уровню, все Ваши платформы и спрайты невидимы и все, которое Вы видите, Ваше фоновое изображение и любой JLabels/Jbuttons, который Вы включали в игру.
Путь - это единственное, о чем вам действительно нужно беспокоиться, если вы действительно новичок в Java. Вам нужно перетащить ваше изображение в основной файл проекта, и оно будет отображаться в самом низу списка.
Тогда путь к файлу довольно прост. Этот код входит в конструктор для класса.
img = Toolkit.getDefaultToolkit().createImage("/home/ben/workspace/CS2/Background.jpg");
CS2 - это название моего проекта, и все, что до этого привело к рабочей области.