Помогите сгенерировать barcode такого вида

155
01 октября 2018, 09:10

Помоги сгенерировать такой barcode, какими библиотеками можно сделать?

Answer 1

Вот здесь просто линии:

    import javax.swing.*;
    import java.awt.*;
    public class BarCodeGenerator {
        public static void main(String[] args) {
            SwingUtilities.invokeLater(() -> {
                JFrame frame = new JFrame("_________");
                BarCodePanel barCodePanel = new BarCodePanel(new Line[]{
                        new Line(3),
                        new Line(2),
                        new Line(4),
                        new Line(3),
                        new Line(2),
                        new Line(6),
                        new Line(4),
                        new Line(5),
                        new Line(7),
                        new Line(5),
                        new Line(3),
                        new Line(4),
                        new Line(9),
                        new Line(12),
                        new Line(11),
                        new Line(3),
                        new Line(6),
                        new Line(3),
                        new Line(2),
                        new Line(8)
                });
                frame.add(barCodePanel);
                frame.setSize(1000, 600);
                frame.setLocationRelativeTo(null);
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setVisible(true);
            });
        }
    }
    class BarCodePanel extends JPanel {
        private Line[] lines;
        public BarCodePanel(Line[] lines) {
            this.lines = lines;
        }
        @Override
        public void paint(Graphics g) {
            super.paint(g);
            Graphics2D g2D = (Graphics2D) g;
            int x = 0;
            for (int i = 0; i < lines.length; i++) {
                if (i % 2 == 0) {
                    g2D.setColor(Color.BLACK);
                } else {
                    g2D.setColor(Color.WHITE);
                }
                Line line = lines[i];
                g2D.fillRect(x, 0, line.getWidth(), 60);
                x += line.getWidth();
            }
        }
    }
    class Line {
        private int width;
        public Line(int width) {
            this.width = width;
        }
        public int getWidth() {
            return width;
        }
    }

Если нужны еще и цифры, нужен алгоритм.

Answer 2

Посмотрите на Barcode4j. Правда именно такого как у Вас на картинке там нет штрих-кода в примерах, но думаю можно что-нибудь придумать.

READ ALSO
В чем ошибка отображение нужной фразы после проверки метки маркера?

В чем ошибка отображение нужной фразы после проверки метки маркера?

Отображается только одно сообщение "Strips" как при нажатии на маркер с выводом сообщения "Strips", так и у маркера, который должен выводить сообщение...

172
Как определить что ViewPAger достиг края?

Как определить что ViewPAger достиг края?

Мне необходимо однозначно определить, что ViewPager домотан до концаТ

183
упал test JUnit geckodriver

упал test JUnit geckodriver

подскажите как поравитьПрошу не кидаться камнями новичок

171